并行计算
慧伟
这个作者很懒,什么都没留下…
展开
-
LMAX架构
LMAX是一种新型零售金融交易平台。它必须在很短的延迟内处理大量的交易。按照Martin Thompson在QCon 2010上公布的数据[1],它可以每秒处理100,000个事务,每个事务的延迟不超过1毫秒。整个系统的核心是一个业务逻辑处理器。LMAX is a new retail financial trading platform. As a result it has to pr原创 2012-07-14 09:42:32 · 240 阅读 · 0 评论 -
Splitting of MPI communicators
有时候为了创建2D的拓扑,需要对MPI_COMM_WORLD进行划分。所使用的MPI函数是:MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm) 例子程序(出自MPI Groups, Communicators and Topologies):#include #include m转载 2012-08-15 10:44:02 · 1461 阅读 · 0 评论 -
学习BlueGene/Q优化Graph 500
今年6月的ISC'12上,IBM的BlueGene/Q系统以领先第二名7倍性能的成绩摘得Graph 500排行榜第一。事隔不到一个月,在ICIS Workshop上,他们又把性能提高了1.27倍。——这帮疯子!里面(Fabrizio Petini etc. al., ICIS Workshop slides)用到了一些优化的手段我还是第一次见到:Non-blocking col原创 2012-08-28 13:46:22 · 650 阅读 · 0 评论 -
调试MPI打印代码
调试MPI程序主要靠打印。如果使用printf,所有的输出都是stdout,不易辨认。把不同rank的log打印到不同文件使得log更清楚,通过fprintf实现。#include "mpi.h"#include #include int main(int argc, char **argv){ int rank, size; MPI_Init(&argc, &arg原创 2012-08-24 15:13:50 · 680 阅读 · 0 评论 -
MPI_Alltoall使用备忘
MPI_Alltoall发送接收的长度都是本地的长度,而不是接收队列的全长MPI_Alltoall示意图:另外,MPI_Alltoallv则需要用int *sdispls和int *rdispls两个数组指定发送接收的位置。原创 2012-08-24 10:03:11 · 767 阅读 · 0 评论 -
使用Valgrind调试MPI代码
基础知识:Valgrind, MPIMPI程序很难调试,因为缺少好的调试工具,大多数时候只能用printf来打印错误。在所有的可能的程序bug中,内存错误无疑是最常见的错误,没有之一。在单个进程运行的时候,可以用Valgrind来检查,但是如果是MPI程序呢?答案是也可以!最近一次调试自己的程序才发现,Valgrind已经支持MPI了,通过对PMPI_*的封装,检测MP原创 2013-02-06 23:34:39 · 1987 阅读 · 0 评论