hpc相关内容

MPI_Bcast或MPI_Send的探测

我有一个程序,其中有一个主站/从站设置,并且我为主站实现了一些功能,这些功能将不同种类的数据发送到从站.某些功能发送给各个从站,而某些功能则通过MPI_Bcast向所有从站广播信息. 我希望在从站中只有一个接收功能,所以我想知道我是否可以探测一条消息,并知道它是作为普通的阻止消息广播还是发送,因为有不同的方法来接收消息广播和正常发送的内容. 解决方案 不,您不能基于探测调用来决定是调 ..
发布时间:2020-05-12 20:03:13 其他开发

如何使用MS HPC Server 2008 R2的MPI堆栈成功编译mpi4py?

故事就这样了:我需要一个用于Python的MPI包装器. 我知道有 mpi4py .对于当前的工作,我(主要)使用Python和Windows,我想使用Microsoft HPC群集包,可以访问一些运行Win 2008 Server的“强大"计算机.只需提一下,除了Win经验,我在MPI和其他方面确实有* nix的经验,但这是解决该问题的有意思的地方. 当我遇到适用于Visual St ..
发布时间:2020-05-12 20:01:32 Python

在群集上运行Rmpi,指定库路径

我正在尝试在我们的计算集群上并行运行分析. 不幸的是,我不得不自己设置Rmpi,但可能做得不好. 因为我必须将所有必要的软件包安装到主文件夹中,所以我总是必须致电 .libPaths('/home/myfolder/Rlib'); 在我可以加载包之前. 但是,在我可以设置库路径之前,似乎doMPI试图加载自身. .libPaths('/home/myfolder/Rlib' ..
发布时间:2020-05-12 20:00:26 其他开发

MVAPICH2缓冲区别名

我用MVAPICH2启动了一个MPI程序,并收到此错误: Fatal error in PMPI_Gather: Invalid buffer pointer, error stack: PMPI_Gather(923): MPI_Gather() failed PMPI_Gather(857): Buffers must not be aliased 我认为有两种解决方法: 重写 ..
发布时间:2020-05-12 19:59:00 其他开发

无法将所有内核与mpirun一起使用

我正在台式机上测试一个简单的MPI程序(Ubuntu LTS 16.04/Intel®Core™i3-6100U CPU @ 2.30GHz×4/gcc 4.8.5/OpenMPI 3.0.0),而mpirun不会让我使用机器上的所有内核(4).当我跑步时: $ mpirun -n 4 ./test2 我收到以下错误: ------------------------------- ..
发布时间:2020-05-12 19:58:26 其他开发

确保混合MPI/OpenMP在不同的内核上运行每个OpenMP线程

我正在尝试运行混合的OpenMP/MPI作业,以使OpenMP线程被内核分开(每个内核仅一个线程).我看到了其他使用numa-ctl和bash脚本设置环境变量的答案,我不想这样做. 我只想通过在命令行上设置OMP_NUM_THREADS和或OMP_PROC_BIND和mpiexec选项来执行此操作.我尝试了以下方法-假设我想要2个MPI进程,每个进程都有2个OpenMP线程,并且每个线程都在 ..
发布时间:2020-05-12 19:58:00 其他开发

在运行不同操作系统的服务器上设置高性能计算集群

在我的实验室中,我们有几个用于模拟程序的服务器,但是它们是独立工作的.现在,我想使用MPICH将它们组合成一个集群,以使它们进行通信.但是存在一个问题,那就是这些服务器具有不同的操作系统.其中一些是Redhat,一些是Ubuntu.在MPICH的主页上,我看到这两个不同的操作系统的下载站点是不同的,那么是否有可能建立一个具有不同操作系统的集群?以及如何做到? 我不想重新安装这些服务器的原因是 ..
发布时间:2020-05-12 19:56:46 其他开发

mpirun-没有足够的可用插槽

通常,当我使用mpirun时,可以使用比计算机上实际可用数量更多的处理器来“重载"它.例如,在我的四核Mac上,我可以运行mpirun -np 29 python -c "print 'hey'"没问题.我现在在另一台计算机上,这将引发以下错误: $ mpirun -np 25 python -c "print 'hey'" --------------------------------- ..
发布时间:2020-05-12 19:55:17 其他开发

使用DGEMM的BLAS LDB

我想将矩阵乘以D * W',其中W'是W的转置版本. 虽然我将使用DGEMM,但在@IanBush的帮助下,我发现在这种情况下LDB应该是矩阵W的行数而不是列数.这种情况的代码是 Call dgemm('n', 't', N1, M1, N1, 1.0_wp, D, N1, W, M1, 0.0_wp, c, n1) 其中n1和m1是矩阵的维数 Dimensions of ..
发布时间:2020-05-07 19:33:18 其他开发

R:比"tcrossprod"更快的R函数.对称密集矩阵乘法?

让 x = matrix(rnorm(1000000), nrow = 5000) 我想计算转置为x %*% t(x)的矩阵乘法. 在谷歌搜索后,我发现执行上述操作的一种更快的方法是 tcrossprod(x) 花费的时间是 user system elapsed 2.975 0.000 2.960 是否有其他R功能可以比上述功能更快地完成任务? ..
发布时间:2020-05-07 19:15:40 其他开发

为什么我的CPU无法在HPC中保持最高性能

我已经开发了一个高性能的Cholesky分解程序,该程序在单个CPU(无超线程)上应具有约10.5 GFLOP的峰值性能.但是,当我测试其性能时,有些现象是我不理解的.在我的实验中,我测量了矩阵尺寸N从250增加到10000时的性能. 在我的算法中,我应用了缓存(具有调整的阻塞因子),并且在计算过程中始终以步幅访问数据,因此缓存性能最佳;消除了TLB和寻呼问题; 我有8GB的可用RAM,并 ..
发布时间:2020-05-07 18:38:51 其他开发

红黑高斯Seidel和OpenMP

我试图证明与MPICH相比,OpenMP的重要性,并且我整理了以下示例来演示在OpenMP中实现某些高性能是多么容易. Gauss-Seidel迭代被分为两个独立的运行,因此在每个扫描中,每个操作都可以按任何顺序执行,并且每个任务之间不应有依赖关系.因此,从理论上讲,每个处理器都不必等待其他进程执行任何类型的同步. 我遇到的问题是,我发现,与问题的大小无关,仅2个处理器的速度较弱,而如 ..
发布时间:2020-05-06 11:26:27 C/C++开发

英特尔MKL与AMD Math Core库

有人对英特尔数学内核库和 AMD Math Core库?我正在建立一台用于高性能统计计算的个人计算机,并对正在购买的组件进行辩论. AMD Math Core库的吸引力在于它是免费的,但是我在学术界,所以MKL并不那么昂贵.但我会对听到有关以下方面的想法感兴趣: 哪个提供了更好的API? 平均每美元可提供更好的性能,包括许可和硬件成本. AMCL-GPU 是我应该考虑的因素吗? 解 ..
发布时间:2020-05-06 10:58:40 其他开发

程序什么时候受内存带宽限制?

我想知道我正在使用且需要大量内存的程序是否受内存带宽的限制. 您预计何时会发生这种情况?在现实生活中,您是否曾经遇到过这种情况? 我发现了几篇讨论此问题的文章,包括: http://www.cs.virginia.edu/~ mccalpin/papers/bandwidth/node12.html http://www.cs.virginia.edu/~ mccalpin/p ..
发布时间:2020-05-01 10:57:29 服务器开发

如何找到SLURM中提交工作的位置?

我通过SLURM向我们学校的HPC集群提交了几份工作.由于所有的shell脚本都具有相同的名称,因此作业名称看起来完全相同.看起来像 [myUserName@rclogin06 ~]$ sacct -u myUserName JobID JobName Partition Account AllocCPUS State ExitCode ------ ..
发布时间:2020-05-01 10:54:34 服务器开发

NUMA计算机上的共享库瓶颈

我正在使用NUMA机器(SGI UV 1000)同时运行大量数值模拟,每个模拟都是使用4个核的OpenMP作业.但是,运行这些作业中的大约100多个会严重影响性能.我们关于发生这种情况的理论是,软件所需的共享库仅加载一次到机器的全局内存中,然后系统遇到通信瓶颈,因为所有进程都在访问单个节点上的内存. 这是一个旧软件,没有修改范围,并且静态make选项不会静态链接其所需的所有库.从我看来,最方 ..
发布时间:2020-05-01 09:35:35 服务器开发

使用Slurm作业ID

当我在集群上启动计算时,通常我有一个单独的程序在最后进行后处理: sbatch simulation sbatch --dependency=afterok:JOBIDHERE postprocessing 我想避免出现错误,并自动插入良好的工作ID.任何的想法?谢谢 解决方案 您可以执行以下操作: RES=$(sbatch simulation) && sbatch -- ..
发布时间:2020-05-01 09:26:49 服务器开发

Linux中NDIS过滤器的模拟方式是什么?

我正在linux上尽可能地在as close to real-time系统上工作,并且在收到特定数据包后需要在TCP数据包中发送大约600-800字节. 为了获得最佳的延迟,我希望直接从内核发送此数据包,而不是将接收到的数据包一直发送到用户空间和应用程序,然后再返回. 如果我在Windows上,我已经编写了一个NDIS过滤器,该过滤器将缓存要与之一起发送的数据包以及匹配参数,以便它将检 ..
发布时间:2020-04-25 11:28:57 服务器开发

在Julia中对大型常量数据结构进行并行操作

我有一个很大的字符串向量向量: 大约有50,000个字符串向量, 每个字符串包含2-15个长度为1-20个字符的字符串. MyScoringOperation是对字符串向量(基准)进行操作并返回10100分数的数组(作为Float64s)的函数.运行MyScoringOperation大约需要0.01秒(取决于基准长度) function MyScoringOperation(stat ..
发布时间:2020-04-25 04:44:25 其他开发