Eigs在多节点集群

11视图(30天)
威斯特黄
威斯特黄 2016年5月18日
我新的高性能计算,我现在试图重新配置一个HPC的matlab代码。(我知道这可能是不喜欢,但是我迫切的需要它。)
任务是解决最低的6个特征值为42500 * 42500复杂稀疏Hermician矩阵。
我获得最低4个节点,每个节点有超过16 gb的内存。
我试图提交这份工作,但得到一个错误
的内存。为你的选择输入帮助记忆。
错误在eigs / checkInputs / LUfactorAminusSigmaB(第987行)
陆(L, U, pp) = (AsB,“向量”);
错误在eigs / checkInputs(第809行)
[L U, pp, qq, dgAsB] = LUfactorAminusSigmaB;
错误在eigs(第96行)
checkInputs(变长度输入宗量{:});
错误在TwoDsolve(第65行)
(psi, E) = eigs (H,号,“sm”);
错误在Loop_Main(第9行)
(ψ,En) = TwoDsolve (V, m2Dx m2Dy,研磨,“eigs”号);
显然它只使用我的问题是:是否有办法配置eigs,这样它就可以使用所需的所有记忆,我来自不同节点?在这里我附上提交文件。
#SBATCH——邮件用户= wister.huang@student.unsw.edu.au
#SBATCH——邮件类型=
#= 00:60:00 SBATCH——时间
#SBATCH——节点= 4
#SBATCH - mem = 16384
#SBATCH——ntasks = 4
#SBATCH——cpus-per-task = 4
回声“myjob.sub”
主机名
模块负载matlab / 2016 a
cdPBS_O_WORKDIR美元
设置显示
matlab-nodisplay - r控制
谢谢,威斯特

接受的答案

安德鲁·克尼亚杰夫
安德鲁·克尼亚杰夫 2018年8月11日
编辑:安德鲁·克尼亚杰夫 2019年6月12日
EIGS支持分布式内存有限,所以你万博1manbetx可以只在单个节点上运行,但看到答案 克里斯汀Tobler 在下面。
谷歌,例如,在BLOPEX LOBPCG实现SLEPc, Trilinos hypre,岩浆并行mpi eigensolvers扩展到数千个节点,在gpu上运行。
//www.tianjin-qmedu.com/matlabcentral/fileexchange/48-locally-optimal-block-preconditioned-conjugate-gradient
修订4.16增加了支持分布式或codi万博1manbetxstributed数组中可用MATLAB BigData工具箱,如:
一个= codistributed(诊断接头(1:10 0));B = codistributed(诊断接头(101:200));
[blockVectorX,λ]= lobpcg (randn (100 2), A, 1 e-5, 5, 2)

答案(1)

克里斯汀Tobler
克里斯汀Tobler 2018年8月13日
eigs 功能是支持万博1manbetx codistributed 矩阵的并行工具箱(见 帮助codistributed / eigs 。然而,这个版本的 eigs 不支持万博1manbetx “sm”/“smallestabs” 选项(除了对角或三角输入矩阵的情况下)。
你可以尝试使用 “smallestreal” 选择相反,但这往往有收敛性问题,因为它不计算的分解,也不使用预调节器,LOBPCG一般。然而,这应该足够快速尝试,因为它只是一个一行程序。
1评论
克里斯汀Tobler
克里斯汀Tobler 2018年8月13日
对不起,我意识到我应该从细节开始开始更广泛:在多个计算节点分配一个MATLAB数组,使用平行的工具箱,它的 分布式 codistributed 类(//www.tianjin-qmedu.com/productss manbetx 845/parallel-computing.html <平行工具箱文档>)。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!