2011-08-08 28 views
0

我有一个运行Ubuntu 11.04和MPICH2 1.4的六节点集群。我正在尝试使用Mandelbrot集测试图形。假定在MPICH2子目录中找到的pmandel可执行文件应该使用群集中的所有节点在屏幕上显示Mandelbrot分形,并且迄今为止发现的所有方向都告诉我“使用pmandel exec”为这个测试。没有exec - 只有pmandel.c,pmandel.h和pmandel.pd。我想我应该编译pmandel.c创建EXEC,但我得到以下错误,当我尝试:使用Mandelbrot集测试Linux集群的问题

[email protected]:~/MPICH2/mpich2-1.4-source/src/mpe2/src/graphics/contrib/mandel$ mpic++ -c pmandel.c 
In file included from pmandel.c:14:0: 
pmandel.h:27:8: error: ‘MPE_XGraph’ does not name a type 
pmandel.h:35:3: error: ‘MPE_Color’ does not name a type 
pmandel.c:27:1: error: ‘MPE_XGraph’ does not name a type 
pmandel.c:29:28: error: variable or field ‘DrawImage’ declared void 
pmandel.c:29:28: error: ‘MPE_XGraph’ was not declared in this scope 
pmandel.c:29:49: error: expected primary-expression before ‘*’ token 
pmandel.c:29:50: error: expected primary-expression before ‘,’ token 
pmandel.c:29:58: error: expected primary-expression before ‘*’ token 
pmandel.c:29:60: error: expected primary-expression before ‘)’ token 
pmandel.c:30:28: error: variable or field ‘ProcessArgsFromFile’ declared void 
pmandel.c:30:28: error: ‘MPE_XGraph’ was not declared in this scope 
pmandel.c:30:49: error: expected primary-expression before ‘*’ token 
pmandel.c:30:50: error: expected primary-expression before ‘,’ token 
pmandel.c:30:58: error: expected primary-expression before ‘*’ token 
pmandel.c:30:59: error: expected primary-expression before ‘)’ token 
pmandel.c:31:28: error: ‘MPE_XGraph’ was not declared in this scope 
pmandel.c:31:46: error: expected primary-expression before ‘*’ token 
pmandel.c:31:47: error: expected primary-expression before ‘)’ token 
pmandel.c:31:47: error: initializer expression list treated as compound expression 
pmandel.c:45:15: error: variable or field ‘UpdateDisplay’ declared void 
pmandel.c:45:15: error: ‘MPE_XGraph’ was not declared in this scope 
pmandel.c:45:33: error: ‘MPE_XGraph’ was not declared in this scope 
pmandel.c:45:64: error: expected primary-expression before ‘*’ token 
pmandel.c:45:65: error: ‘flags’ was not declared in this scope 

它只是看起来像标准的编译错误给我。但是为什么MPICH2会发布错误文件?我确定我做错了什么,但我无法弄清楚如何运行这个测试。任何帮助将不胜感激。

+0

可能只是代码上的“bitrot”。它也处于“贡献”状态,这表明外部工作包含在分配中,因为它可能是有用的,但不直接是主要来源分配的一部分 – Flexo

回答

0

如果您配置了MPICH2的副本--enable-mpe(或者,更可能的是,没有--disable-mpe),那么应该有一个src/mpe2/src/graphics/contrib/mandelMakefile。尝试从该目录运行make,看看是否会为您建立pmandel

综上所述,当我运行该程序时,它一开始工作,然后在我尝试通过拖动一个新框放大时进行分段。因人而异。正如评论中提到的awoodland,这是contrib代码,所以MPICH2团队没有写它。自述文件中列出的作者似乎已经从阿贡移居,因此你不可能从他那里得到任何支持。

0

由于配置问题,您的MPE头部可能是空的。试试这个:

$ cat <YOUR MPICH DIRECTORY>/include/mpe.h 

这:

$ cat <YOUR MPICH DIRECTORY>/include/mpe_graphics.h 

如果你看到任何警告信息,你应该考虑编制和source重新安装。