在我研究 Krylov 子空间方法的同时,我可以选择先探索 HPC 背后的数学或计算理论(硬件、操作系统、编译器等)。目前,我对这两个方面的了解都足够了。例如,我知道如何推导 CG 的方程和迭代方法的基础知识,但我对细节和更复杂的东西(如 Preconditioners 和 Convergence)一无所知。同样,我知道有限元方法的基础知识(弱形式,非弱形式,诸如 Codomain 和 Galerkin 之类的东西),但不知道它的深度。在计算方面,我知道如何用所有可能的语言进行串行编码,并且可以很好地使用 OpenMP 和 MPI。我不太了解硬件和缓存。
我的问题是:一个人应该专注于什么:数学还是计算?它们在 HPC 中是不可分割的吗?是否建议一个人学习一个而不是另一个?
编辑:我目前主修机械工程(我很遗憾),并且有大量的工程和计算课程(流体、传热等)。今年我将加入 HPC 研究生院,我想在开始研究生学习之前加强某些方面(数学/计算/混合)。我同样喜欢数学和计算(所以“做你喜欢做的事”是多余的)。