使用 Mandelbrot 集测试 Linux 集群时出现问题

发布于 2024-11-29 01:56:33 字数 2162 浏览 0 评论 0原文

我有一个运行 Ubuntu 11.04 和 MPICH2 1.4 的六节点集群。我正在尝试使用 Mandelbrot 集测试图形。据说在 MPICH2 子目录之一中找到的 pmandel 可执行文件应该使用集群中的所有节点在屏幕上渲染 Mandelbrot 分形,到目前为止我找到的所有指示都告诉我“使用 pmandel exec”对于这个测试。没有 exec - 只有 pmandel.c、pmandel.h 和 pmandel.pd。我认为我应该编译 pmandel.c 来创建 exec,但是当我尝试时,我收到以下错误:

cs_lab@daedalus01:~/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 发布时会带有一个充满错误的文件呢?我确信我做错了什么,但我只是不知道如何运行这个测试。任何帮助将不胜感激。

I have a six-node cluster running Ubuntu 11.04 and MPICH2 1.4. I'm trying to test the graphics using the Mandelbrot set. The pmandel executable that is supposedly found in one of the MPICH2 subdirectories is supposed to render the Mandelbrot fractal on the screen using all the nodes in the cluster, and all the directions I've found so far tell me to "use the pmandel exec" for this test. There is no exec - there is only pmandel.c, pmandel.h, and pmandel.pd. I thought I should compile pmandel.c to create the exec, but I get the following errors when I try:

cs_lab@daedalus01:~/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

It just looks like standard compilation errors to me. But why would MPICH2 be released with an error-ridden file? I'm sure I'm doing something wrong, but I just can't figure out how to run this test. Any help would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧梦荧光笔 2024-12-06 01:56:34

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

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

还有这个:

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

如果您看到任何警告消息,您应该考虑从 来源

Maybe your MPE header is empty due to configuration issues. Try this:

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

And this:

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

If you see any warning message, you should consider compiling and installing it again from source.

若沐 2024-12-06 01:56:33

如果您使用 --enable-mpe 配置 MPICH2 副本(或者更有可能,不使用 --disable-mpe),那么应该有一个 Makefilesrc/mpe2/src/graphics/contrib/mandel中。尝试从该目录运行 make 并查看是否会为您构建 pmandel

话虽如此,当我运行该程序时,它最初可以工作,然后当我尝试通过拖动新框来放大时出现段错误。 YMMV。正如 awoodland 在评论中提到的,这是贡献代码,因此 MPICH2 团队没有编写它。自述文件中列出的作者似乎已从阿贡离职,因此您不太可能从他那里获得任何支持。

If you configured your copy of MPICH2 with --enable-mpe (or, more likely, without --disable-mpe), then there should be a Makefile in src/mpe2/src/graphics/contrib/mandel. Try running make from that directory and see if that will build pmandel for you.

With all that said, when I ran the program it worked initially and then segfaulted when I attempted to zoom in by dragging a new box. YMMV. As awoodland mentioned in the comments, this is contrib code so the MPICH2 team didn't write it. The author listed in the README appears to have moved on from Argonne, so you are unlikely to receive any support from him.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文