![]() |
Here it goes a stupid question.
Open MPI binaries were released for windows environment ([url]http://www.open-mpi.org/software/ompi/v1.6/ms-windows.php[/url]). On an i7 single socket will I take advantage of running Msieve with MPI block Lanczos (4 cores vs 8 threads)? Carlos |
MPI is just a thin set of runtime middleware for running multiple binaries of your program. It doesn't know about multiple cores or hyperthreading; you can build a hosts file that describes how processes should be scheduled across or within physical machines, or you can just run with '-np 4 msieve ...' and it will spawn four copies of msieve.exe, which will find each other and start cooperating to do the LA. Whether this is faster than running the LA with 4 threads but without MPI is a good question. I don't know, and it will be machine specific.
There is also the msieve-lapool branch to the source, which seems to be a lot more efficient on machines with big caches but is still highly experimental right now. |
Trying to compile Open MPI 1.6.4, the configure completes correctly, but when I try to run "make", I get the following error:
[CODE]../../opal/win32/win_compat.h:93:14: error: conflicting types for 'ssize_t'[/CODE] Searching around, it seems to be a pretty common error, but I can't find an actual solution. Any ideas? Fixed this one by changing the "long ssize_t" in win_compat.h to "int". So this error passes. Now I'm dealing with stdbool.h not being around. Even creating it myself and sticking it in /mingw/include doesn't seem to work. |
They do have precompiled cygwin binaries...
|
Indeed they do. I'll download those and try it out. One clarifying question about MPI:
if I use MPI with my quadcore processor (intel i7, 2 threads per core), is that equivalent to just manually starting 8 msieve processes? In other words, does using MPI allow me to process larger amount of work overall--I'm thinking about cases like RSA1024 (as an example) where msieve says it can't handle a special q greater than a certain size and stops? I've read through this thread, but I'm still not sure. |
[QUOTE=wombatman;340814]Indeed they do. I'll download those and try it out. One clarifying question about MPI:
if I use MPI with my quadcore processor (intel i7, 2 threads per core), is that equivalent to just manually starting 8 msieve processes? In other words, does using MPI allow me to process larger amount of work overall--I'm thinking about cases like RSA1024 (as an example) where msieve says it can't handle a special q greater than a certain size and stops? I've read through this thread, but I'm still not sure.[/QUOTE] Part of your question asked on post #78. Let me know if you managed to compile for win 64 bits a msieve MPI version so I can try here. Thank you in advance, Carlos |
Carlos,
I definitely will, and if you can tell me what type of processor you have, I'd be happy to try and tailor the -march flag to it as well (if you want). As for my question, I guess what I'm asking is if using MPI will break the matrix down into smaller pieces (and thus allow me to handle what is effectively a smaller one) or if it simply coordinates the different instances of msieve so that they're all working on the same big matrix and do separate pieces of it without actually breaking it down. Does that make sense? |
Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz [Family 6 Model 58 Stepping 9]. I have the same doubts that you have and only can be answered by trying here a msieve MPI version.
|
Good deal. Cygwin is currently installing (I chose 'all' for the packages :D), but once it's done, I'll see about the compiling. It'll be nice to compare on two similar, but slightly different systems.
|
Well, at this point I can't get open-mpi to compile because it refuses to understand the bool definition.
[CODE]../../opal/util/output.h:167:5: error: unknown type name 'bool'[/CODE] even after I put stdbool.h in both the main mingw include folder and the gcc include folder. Another option, I suppose, will be to go through each file that throws the error and define bool there. Got Cygwin download and running, but it throws a completely different error when I try to compile msieve: [CODE]common/filter/clique.c:1:0: error: bad value (corei7) for -march= switch[/CODE] Can't find anything about this googling, so...yeah. Hopefully I can figure it out soon and get something compiled for us to test with. |
Carlos,
Here is a compiled version using [CODE]-march=native[/CODE] and [CODE]WIN=1 MPI=1[/CODE] as the parameters. When I tried to do LARGEBLOCKS and/or CUDA, they both fail, so I'm going to mess with them later on. I also haven't test this one, so I don't know if it will work, but please let me know (and also let me know what you run on the command line if it does work). This one is for windows but requires all the cygwin dlls apparently. [URL=http://depositfiles.com/files/cyvkez6az]http://depositfiles.com/files/cyvkez6az[/URL] This one is designed to run on cygwin, although I'm having some issues that I have to work out. I hope it work for you. If not, let me know. [URL=http://depositfiles.com/files/bcq8vc16y]http://depositfiles.com/files/bcq8vc16y[/URL] |
| All times are UTC. The time now is 23:30. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.