based on your output shown here, there is absolutely nothing wrong (yet). Both processes are in the same function and do what they are supposed to do.
However, I am fairly sure that the client process bt that you show is already part of current_intracomm. Could you try to create a bt of the process that is not yet part of current_intracomm (If I understand your code correctly, the intercommunicator is n-1 configuration, with each client process being part of n after the intercomm_merge). It would be interesting to see where that process is... Thanks Edgar On 7/27/2010 1:42 PM, Ralph Castain wrote: > This slides outside of my purview - I would suggest you post this question > with a different subject line specifically mentioning failure of > intercomm_merge to work so it attracts the attention of those with knowledge > of that area. > > > On Jul 27, 2010, at 9:30 AM, Grzegorz Maj wrote: > >> So now I have a new question. >> When I run my server and a lot of clients on the same machine, >> everything looks fine. >> >> But when I try to run the clients on several machines the most >> frequent scenario is: >> * server is stared on machine A >> * X (= 1, 4, 10, ..) clients are started on machine B and they connect >> successfully >> * the first client starting on machine C connects successfully to the >> server, but the whole grid hangs on MPI_Comm_merge (all the processes >> from intercommunicator get there). >> >> As I said it's the most frequent scenario. Sometimes I can connect the >> clients from several machines. Sometimes it hangs (always on >> MPI_Comm_merge) when connecting the clients from machine B. >> The interesting thing is, that if before MPI_Comm_merge I send a dummy >> message on the intercommunicator from process rank 0 in one group to >> process rank 0 in the other one, it will not hang on MPI_Comm_merge. >> >> I've tried both versions with and without the first patch (ompi-server >> as orted) but it doesn't change the behavior. >> >> I've attached gdb to my server, this is bt: >> #0 0xffffe410 in __kernel_vsyscall () >> #1 0x00637afc in sched_yield () from /lib/libc.so.6 >> #2 0xf7e8ce31 in opal_progress () at ../../opal/runtime/opal_progress.c:220 >> #3 0xf7f60ad4 in opal_condition_wait (c=0xf7fd7dc0, m=0xf7fd7e00) at >> ../../opal/threads/condition.h:99 >> #4 0xf7f60dee in ompi_request_default_wait_all (count=2, >> requests=0xff8d7754, statuses=0x0) at >> ../../ompi/request/req_wait.c:262 >> #5 0xf7d3e221 in mca_coll_inter_allgatherv_inter (sbuf=0xff8d7824, >> scount=1, sdtype=0x8049200, rbuf=0xff8d77e0, rcounts=0x9783df8, >> disps=0x9755520, rdtype=0x8049200, comm=0x978c2a8, module=0x9794b08) >> at ../../../../../ompi/mca/coll/inter/coll_inter_allgatherv.c:127 >> #6 0xf7f4c615 in ompi_comm_determine_first (intercomm=0x978c2a8, >> high=0) at ../../ompi/communicator/comm.c:1199 >> #7 0xf7f8d1d9 in PMPI_Intercomm_merge (intercomm=0x978c2a8, high=0, >> newcomm=0xff8d78c0) at pintercomm_merge.c:84 >> #8 0x0804893c in main (argc=Cannot access memory at address 0xf >> ) at server.c:50 >> >> And this is bt from one of the clients: >> #0 0xffffe410 in __kernel_vsyscall () >> #1 0x0064993b in poll () from /lib/libc.so.6 >> #2 0xf7de027f in poll_dispatch (base=0x8643fb8, arg=0x86442d8, >> tv=0xff82299c) at ../../../opal/event/poll.c:168 >> #3 0xf7dde4b2 in opal_event_base_loop (base=0x8643fb8, flags=2) at >> ../../../opal/event/event.c:807 >> #4 0xf7dde34f in opal_event_loop (flags=2) at >> ../../../opal/event/event.c:730 >> #5 0xf7dcfc77 in opal_progress () at ../../opal/runtime/opal_progress.c:189 >> #6 0xf7ea80b8 in opal_condition_wait (c=0xf7f25160, m=0xf7f251a0) at >> ../../opal/threads/condition.h:99 >> #7 0xf7ea7ff3 in ompi_request_wait_completion (req=0x8686680) at >> ../../ompi/request/request.h:375 >> #8 0xf7ea7ef1 in ompi_request_default_wait (req_ptr=0xff822ae8, >> status=0x0) at ../../ompi/request/req_wait.c:37 >> #9 0xf7c663a6 in ompi_coll_tuned_bcast_intra_generic >> (buffer=0xff822d20, original_count=1, datatype=0x868bd00, root=0, >> comm=0x86aa7f8, module=0x868b700, count_by_segment=1, tree=0x868b3d8) >> at ../../../../../ompi/mca/coll/tuned/coll_tuned_bcast.c:237 >> #10 0xf7c668ea in ompi_coll_tuned_bcast_intra_binomial >> (buffer=0xff822d20, count=1, datatype=0x868bd00, root=0, >> comm=0x86aa7f8, module=0x868b700, segsize=0) >> at ../../../../../ompi/mca/coll/tuned/coll_tuned_bcast.c:368 >> #11 0xf7c5af12 in ompi_coll_tuned_bcast_intra_dec_fixed >> (buff=0xff822d20, count=1, datatype=0x868bd00, root=0, comm=0x86aa7f8, >> module=0x868b700) >> at ../../../../../ompi/mca/coll/tuned/coll_tuned_decision_fixed.c:256 >> #12 0xf7c73269 in mca_coll_sync_bcast (buff=0xff822d20, count=1, >> datatype=0x868bd00, root=0, comm=0x86aa7f8, module=0x86aaa28) at >> ../../../../../ompi/mca/coll/sync/coll_sync_bcast.c:44 >> #13 0xf7c80381 in mca_coll_inter_allgatherv_inter (sbuf=0xff822d64, >> scount=0, sdtype=0x8049400, rbuf=0xff822d20, rcounts=0x868a188, >> disps=0x868abb8, rdtype=0x8049400, comm=0x86aa300, >> module=0x86aae18) at >> ../../../../../ompi/mca/coll/inter/coll_inter_allgatherv.c:134 >> #14 0xf7e9398f in ompi_comm_determine_first (intercomm=0x86aa300, >> high=0) at ../../ompi/communicator/comm.c:1199 >> #15 0xf7ed7833 in PMPI_Intercomm_merge (intercomm=0x86aa300, high=0, >> newcomm=0xff8241d0) at pintercomm_merge.c:84 >> #16 0x08048afd in main (argc=943274038, argv=0x33393133) at client.c:47 >> >> >> >> What do you think may cause the problem? >> >> >> 2010/7/26 Ralph Castain <r...@open-mpi.org>: >>> No problem at all - glad it works! >>> >>> On Jul 26, 2010, at 7:58 AM, Grzegorz Maj wrote: >>> >>>> Hi, >>>> I'm very sorry, but the problem was on my side. My installation >>>> process was not always taking the newest sources of openmpi. In this >>>> case it hasn't installed the version with the latest patch. Now I >>>> think everything works fine - I could run over 130 processes with no >>>> problems. >>>> I'm sorry again that I've wasted your time. And thank you for the patch. >>>> >>>> 2010/7/21 Ralph Castain <r...@open-mpi.org>: >>>>> We're having some problem replicating this once my patches are applied. >>>>> Can you send us your configure cmd? Just the output from "head >>>>> config.log" will do for now. >>>>> >>>>> Thanks! >>>>> >>>>> On Jul 20, 2010, at 9:09 AM, Grzegorz Maj wrote: >>>>> >>>>>> My start script looks almost exactly the same as the one published by >>>>>> Edgar, ie. the processes are starting one by one with no delay. >>>>>> >>>>>> 2010/7/20 Ralph Castain <r...@open-mpi.org>: >>>>>>> Grzegorz: something occurred to me. When you start all these processes, >>>>>>> how are you staggering their wireup? Are they flooding us, or are you >>>>>>> time-shifting them a little? >>>>>>> >>>>>>> >>>>>>> On Jul 19, 2010, at 10:32 AM, Edgar Gabriel wrote: >>>>>>> >>>>>>>> Hm, so I am not sure how to approach this. First of all, the test case >>>>>>>> works for me. I used up to 80 clients, and for both optimized and >>>>>>>> non-optimized compilation. I ran the tests with trunk (not with 1.4 >>>>>>>> series, but the communicator code is identical in both cases). Clearly, >>>>>>>> the patch from Ralph is necessary to make it work. >>>>>>>> >>>>>>>> Additionally, I went through the communicator creation code for dynamic >>>>>>>> communicators trying to find spots that could create problems. The only >>>>>>>> place that I found the number 64 appear is the fortran-to-c mapping >>>>>>>> arrays (e.g. for communicators), where the initial size of the table is >>>>>>>> 64. I looked twice over the pointer-array code to see whether we could >>>>>>>> have a problem their (since it is a key-piece of the cid allocation >>>>>>>> code >>>>>>>> for communicators), but I am fairly confident that it is correct. >>>>>>>> >>>>>>>> Note, that we have other (non-dynamic tests), were comm_set is called >>>>>>>> 100,000 times, and the code per se does not seem to have a problem due >>>>>>>> to being called too often. So I am not sure what else to look at. >>>>>>>> >>>>>>>> Edgar >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 7/13/2010 8:42 PM, Ralph Castain wrote: >>>>>>>>> As far as I can tell, it appears the problem is somewhere in our >>>>>>>>> communicator setup. The people knowledgeable on that area are going >>>>>>>>> to look into it later this week. >>>>>>>>> >>>>>>>>> I'm creating a ticket to track the problem and will copy you on it. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Jul 13, 2010, at 6:57 AM, Ralph Castain wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Jul 13, 2010, at 3:36 AM, Grzegorz Maj wrote: >>>>>>>>>> >>>>>>>>>>> Bad news.. >>>>>>>>>>> I've tried the latest patch with and without the prior one, but it >>>>>>>>>>> hasn't changed anything. I've also tried using the old code but with >>>>>>>>>>> the OMPI_DPM_BASE_MAXJOBIDS constant changed to 80, but it also >>>>>>>>>>> didn't >>>>>>>>>>> help. >>>>>>>>>>> While looking through the sources of openmpi-1.4.2 I couldn't find >>>>>>>>>>> any >>>>>>>>>>> call of the function ompi_dpm_base_mark_dyncomm. >>>>>>>>>> >>>>>>>>>> It isn't directly called - it shows in ompi_comm_set as >>>>>>>>>> ompi_dpm.mark_dyncomm. You were definitely overrunning that array, >>>>>>>>>> but I guess something else is also being hit. Have to look further... >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2010/7/12 Ralph Castain <r...@open-mpi.org>: >>>>>>>>>>>> Just so you don't have to wait for 1.4.3 release, here is the >>>>>>>>>>>> patch (doesn't include the prior patch). >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Jul 12, 2010, at 12:13 PM, Grzegorz Maj wrote: >>>>>>>>>>>> >>>>>>>>>>>>> 2010/7/12 Ralph Castain <r...@open-mpi.org>: >>>>>>>>>>>>>> Dug around a bit and found the problem!! >>>>>>>>>>>>>> >>>>>>>>>>>>>> I have no idea who or why this was done, but somebody set a >>>>>>>>>>>>>> limit of 64 separate jobids in the dynamic init called by >>>>>>>>>>>>>> ompi_comm_set, which builds the intercommunicator. >>>>>>>>>>>>>> Unfortunately, they hard-wired the array size, but never check >>>>>>>>>>>>>> that size before adding to it. >>>>>>>>>>>>>> >>>>>>>>>>>>>> So after 64 calls to connect_accept, you are overwriting other >>>>>>>>>>>>>> areas of the code. As you found, hitting 66 causes it to >>>>>>>>>>>>>> segfault. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I'll fix this on the developer's trunk (I'll also add that >>>>>>>>>>>>>> original patch to it). Rather than my searching this thread in >>>>>>>>>>>>>> detail, can you remind me what version you are using so I can >>>>>>>>>>>>>> patch it too? >>>>>>>>>>>>> >>>>>>>>>>>>> I'm using 1.4.2 >>>>>>>>>>>>> Thanks a lot and I'm looking forward for the patch. >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks for your patience with this! >>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Jul 12, 2010, at 7:20 AM, Grzegorz Maj wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> 1024 is not the problem: changing it to 2048 hasn't change >>>>>>>>>>>>>>> anything. >>>>>>>>>>>>>>> Following your advice I've run my process using gdb. >>>>>>>>>>>>>>> Unfortunately I >>>>>>>>>>>>>>> didn't get anything more than: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Program received signal SIGSEGV, Segmentation fault. >>>>>>>>>>>>>>> [Switching to Thread 0xf7e4c6c0 (LWP 20246)] >>>>>>>>>>>>>>> 0xf7f39905 in ompi_comm_set () from >>>>>>>>>>>>>>> /home/gmaj/openmpi/lib/libmpi.so.0 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> (gdb) bt >>>>>>>>>>>>>>> #0 0xf7f39905 in ompi_comm_set () from >>>>>>>>>>>>>>> /home/gmaj/openmpi/lib/libmpi.so.0 >>>>>>>>>>>>>>> #1 0xf7e3ba95 in connect_accept () from >>>>>>>>>>>>>>> /home/gmaj/openmpi/lib/openmpi/mca_dpm_orte.so >>>>>>>>>>>>>>> #2 0xf7f62013 in PMPI_Comm_connect () from >>>>>>>>>>>>>>> /home/gmaj/openmpi/lib/libmpi.so.0 >>>>>>>>>>>>>>> #3 0x080489ed in main (argc=825832753, argv=0x34393638) at >>>>>>>>>>>>>>> client.c:43 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> What's more: when I've added a breakpoint on ompi_comm_set in >>>>>>>>>>>>>>> 66th >>>>>>>>>>>>>>> process and stepped a couple of instructions, one of the other >>>>>>>>>>>>>>> processes crashed (as usualy on ompi_comm_set) earlier than >>>>>>>>>>>>>>> 66th did. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Finally I decided to recompile openmpi using -g flag for gcc. >>>>>>>>>>>>>>> In this >>>>>>>>>>>>>>> case the 66 processes issue has gone! I was running my >>>>>>>>>>>>>>> applications >>>>>>>>>>>>>>> exactly the same way as previously (even without recompilation) >>>>>>>>>>>>>>> and >>>>>>>>>>>>>>> I've run successfully over 130 processes. >>>>>>>>>>>>>>> When switching back to the openmpi compilation without -g it >>>>>>>>>>>>>>> again segfaults. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Any ideas? I'm really confused. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 2010/7/7 Ralph Castain <r...@open-mpi.org>: >>>>>>>>>>>>>>>> I would guess the #files limit of 1024. However, if it behaves >>>>>>>>>>>>>>>> the same way when spread across multiple machines, I would >>>>>>>>>>>>>>>> suspect it is somewhere in your program itself. Given that the >>>>>>>>>>>>>>>> segfault is in your process, can you use gdb to look at the >>>>>>>>>>>>>>>> core file and see where and why it fails? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Jul 7, 2010, at 10:17 AM, Grzegorz Maj wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 2010/7/7 Ralph Castain <r...@open-mpi.org>: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Jul 6, 2010, at 8:48 AM, Grzegorz Maj wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Hi Ralph, >>>>>>>>>>>>>>>>>>> sorry for the late response, but I couldn't find free time >>>>>>>>>>>>>>>>>>> to play >>>>>>>>>>>>>>>>>>> with this. Finally I've applied the patch you prepared. >>>>>>>>>>>>>>>>>>> I've launched >>>>>>>>>>>>>>>>>>> my processes in the way you've described and I think it's >>>>>>>>>>>>>>>>>>> working as >>>>>>>>>>>>>>>>>>> you expected. None of my processes runs the orted daemon >>>>>>>>>>>>>>>>>>> and they can >>>>>>>>>>>>>>>>>>> perform MPI operations. Unfortunately I'm still hitting the >>>>>>>>>>>>>>>>>>> 65 >>>>>>>>>>>>>>>>>>> processes issue :( >>>>>>>>>>>>>>>>>>> Maybe I'm doing something wrong. >>>>>>>>>>>>>>>>>>> I attach my source code. If anybody could have a look on >>>>>>>>>>>>>>>>>>> this, I would >>>>>>>>>>>>>>>>>>> be grateful. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> When I run that code with clients_count <= 65 everything >>>>>>>>>>>>>>>>>>> works fine: >>>>>>>>>>>>>>>>>>> all the processes create a common grid, exchange some >>>>>>>>>>>>>>>>>>> information and >>>>>>>>>>>>>>>>>>> disconnect. >>>>>>>>>>>>>>>>>>> When I set clients_count > 65 the 66th process crashes on >>>>>>>>>>>>>>>>>>> MPI_Comm_connect (segmentation fault). >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I didn't have time to check the code, but my guess is that >>>>>>>>>>>>>>>>>> you are still hitting some kind of file descriptor or other >>>>>>>>>>>>>>>>>> limit. Check to see what your limits are - usually "ulimit" >>>>>>>>>>>>>>>>>> will tell you. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> My limitations are: >>>>>>>>>>>>>>>>> time(seconds) unlimited >>>>>>>>>>>>>>>>> file(blocks) unlimited >>>>>>>>>>>>>>>>> data(kb) unlimited >>>>>>>>>>>>>>>>> stack(kb) 10240 >>>>>>>>>>>>>>>>> coredump(blocks) 0 >>>>>>>>>>>>>>>>> memory(kb) unlimited >>>>>>>>>>>>>>>>> locked memory(kb) 64 >>>>>>>>>>>>>>>>> process 200704 >>>>>>>>>>>>>>>>> nofiles 1024 >>>>>>>>>>>>>>>>> vmemory(kb) unlimited >>>>>>>>>>>>>>>>> locks unlimited >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Which one do you think could be responsible for that? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I was trying to run all the 66 processes on one machine or >>>>>>>>>>>>>>>>> spread them >>>>>>>>>>>>>>>>> across several machines and it always crashes the same way on >>>>>>>>>>>>>>>>> the 66th >>>>>>>>>>>>>>>>> process. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Another thing I would like to know is if it's normal that >>>>>>>>>>>>>>>>>>> any of my >>>>>>>>>>>>>>>>>>> processes when calling MPI_Comm_connect or MPI_Comm_accept >>>>>>>>>>>>>>>>>>> when the >>>>>>>>>>>>>>>>>>> other side is not ready, is eating up a full CPU available. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Yes - the waiting process is polling in a tight loop waiting >>>>>>>>>>>>>>>>>> for the connection to be made. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Any help would be appreciated, >>>>>>>>>>>>>>>>>>> Grzegorz Maj >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> 2010/4/24 Ralph Castain <r...@open-mpi.org>: >>>>>>>>>>>>>>>>>>>> Actually, OMPI is distributed with a daemon that does >>>>>>>>>>>>>>>>>>>> pretty much what you >>>>>>>>>>>>>>>>>>>> want. Checkout "man ompi-server". I originally wrote that >>>>>>>>>>>>>>>>>>>> code to support >>>>>>>>>>>>>>>>>>>> cross-application MPI publish/subscribe operations, but we >>>>>>>>>>>>>>>>>>>> can utilize it >>>>>>>>>>>>>>>>>>>> here too. Have to blame me for not making it more publicly >>>>>>>>>>>>>>>>>>>> known. >>>>>>>>>>>>>>>>>>>> The attached patch upgrades ompi-server and modifies the >>>>>>>>>>>>>>>>>>>> singleton startup >>>>>>>>>>>>>>>>>>>> to provide your desired support. This solution works in >>>>>>>>>>>>>>>>>>>> the following >>>>>>>>>>>>>>>>>>>> manner: >>>>>>>>>>>>>>>>>>>> 1. launch "ompi-server -report-uri <filename>". This >>>>>>>>>>>>>>>>>>>> starts a persistent >>>>>>>>>>>>>>>>>>>> daemon called "ompi-server" that acts as a rendezvous >>>>>>>>>>>>>>>>>>>> point for >>>>>>>>>>>>>>>>>>>> independently started applications. The problem with >>>>>>>>>>>>>>>>>>>> starting different >>>>>>>>>>>>>>>>>>>> applications and wanting them to MPI connect/accept lies >>>>>>>>>>>>>>>>>>>> in the need to have >>>>>>>>>>>>>>>>>>>> the applications find each other. If they can't discover >>>>>>>>>>>>>>>>>>>> contact info for >>>>>>>>>>>>>>>>>>>> the other app, then they can't wire up their >>>>>>>>>>>>>>>>>>>> interconnects. The >>>>>>>>>>>>>>>>>>>> "ompi-server" tool provides that rendezvous point. I don't >>>>>>>>>>>>>>>>>>>> like that >>>>>>>>>>>>>>>>>>>> comm_accept segfaulted - should have just error'd out. >>>>>>>>>>>>>>>>>>>> 2. set OMPI_MCA_orte_server=file:<filename>" in the >>>>>>>>>>>>>>>>>>>> environment where you >>>>>>>>>>>>>>>>>>>> will start your processes. This will allow your singleton >>>>>>>>>>>>>>>>>>>> processes to find >>>>>>>>>>>>>>>>>>>> the ompi-server. I automatically also set the envar to >>>>>>>>>>>>>>>>>>>> connect the MPI >>>>>>>>>>>>>>>>>>>> publish/subscribe system for you. >>>>>>>>>>>>>>>>>>>> 3. run your processes. As they think they are singletons, >>>>>>>>>>>>>>>>>>>> they will detect >>>>>>>>>>>>>>>>>>>> the presence of the above envar and automatically connect >>>>>>>>>>>>>>>>>>>> themselves to the >>>>>>>>>>>>>>>>>>>> "ompi-server" daemon. This provides each process with the >>>>>>>>>>>>>>>>>>>> ability to perform >>>>>>>>>>>>>>>>>>>> any MPI-2 operation. >>>>>>>>>>>>>>>>>>>> I tested this on my machines and it worked, so hopefully >>>>>>>>>>>>>>>>>>>> it will meet your >>>>>>>>>>>>>>>>>>>> needs. You only need to run one "ompi-server" period, so >>>>>>>>>>>>>>>>>>>> long as you locate >>>>>>>>>>>>>>>>>>>> it where all of the processes can find the contact file >>>>>>>>>>>>>>>>>>>> and can open a TCP >>>>>>>>>>>>>>>>>>>> socket to the daemon. There is a way to knit multiple >>>>>>>>>>>>>>>>>>>> ompi-servers into a >>>>>>>>>>>>>>>>>>>> broader network (e.g., to connect processes that cannot >>>>>>>>>>>>>>>>>>>> directly access a >>>>>>>>>>>>>>>>>>>> server due to network segmentation), but it's a tad tricky >>>>>>>>>>>>>>>>>>>> - let me know if >>>>>>>>>>>>>>>>>>>> you require it and I'll try to help. >>>>>>>>>>>>>>>>>>>> If you have trouble wiring them all into a single >>>>>>>>>>>>>>>>>>>> communicator, you might >>>>>>>>>>>>>>>>>>>> ask separately about that and see if one of our MPI >>>>>>>>>>>>>>>>>>>> experts can provide >>>>>>>>>>>>>>>>>>>> advice (I'm just the RTE grunt). >>>>>>>>>>>>>>>>>>>> HTH - let me know how this works for you and I'll >>>>>>>>>>>>>>>>>>>> incorporate it into future >>>>>>>>>>>>>>>>>>>> OMPI releases. >>>>>>>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Apr 24, 2010, at 1:49 AM, Krzysztof Zarzycki wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi Ralph, >>>>>>>>>>>>>>>>>>>> I'm Krzysztof and I'm working with Grzegorz Maj on this >>>>>>>>>>>>>>>>>>>> our small >>>>>>>>>>>>>>>>>>>> project/experiment. >>>>>>>>>>>>>>>>>>>> We definitely would like to give your patch a try. But >>>>>>>>>>>>>>>>>>>> could you please >>>>>>>>>>>>>>>>>>>> explain your solution a little more? >>>>>>>>>>>>>>>>>>>> You still would like to start one mpirun per mpi grid, and >>>>>>>>>>>>>>>>>>>> then have >>>>>>>>>>>>>>>>>>>> processes started by us to join the MPI comm? >>>>>>>>>>>>>>>>>>>> It is a good solution of course. >>>>>>>>>>>>>>>>>>>> But it would be especially preferable to have one daemon >>>>>>>>>>>>>>>>>>>> running >>>>>>>>>>>>>>>>>>>> persistently on our "entry" machine that can handle >>>>>>>>>>>>>>>>>>>> several mpi grid starts. >>>>>>>>>>>>>>>>>>>> Can your patch help us this way too? >>>>>>>>>>>>>>>>>>>> Thanks for your help! >>>>>>>>>>>>>>>>>>>> Krzysztof >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On 24 April 2010 03:51, Ralph Castain <r...@open-mpi.org> >>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> In thinking about this, my proposed solution won't >>>>>>>>>>>>>>>>>>>>> entirely fix the >>>>>>>>>>>>>>>>>>>>> problem - you'll still wind up with all those daemons. I >>>>>>>>>>>>>>>>>>>>> believe I can >>>>>>>>>>>>>>>>>>>>> resolve that one as well, but it would require a patch. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Would you like me to send you something you could try? >>>>>>>>>>>>>>>>>>>>> Might take a couple >>>>>>>>>>>>>>>>>>>>> of iterations to get it right... >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Apr 23, 2010, at 12:12 PM, Ralph Castain wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Hmmm....I -think- this will work, but I cannot guarantee >>>>>>>>>>>>>>>>>>>>>> it: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 1. launch one process (can just be a spinner) using >>>>>>>>>>>>>>>>>>>>>> mpirun that includes >>>>>>>>>>>>>>>>>>>>>> the following option: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> mpirun -report-uri file >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> where file is some filename that mpirun can create and >>>>>>>>>>>>>>>>>>>>>> insert its >>>>>>>>>>>>>>>>>>>>>> contact info into it. This can be a relative or absolute >>>>>>>>>>>>>>>>>>>>>> path. This process >>>>>>>>>>>>>>>>>>>>>> must remain alive throughout your application - doesn't >>>>>>>>>>>>>>>>>>>>>> matter what it does. >>>>>>>>>>>>>>>>>>>>>> It's purpose is solely to keep mpirun alive. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 2. set OMPI_MCA_dpm_orte_server=FILE:file in your >>>>>>>>>>>>>>>>>>>>>> environment, where >>>>>>>>>>>>>>>>>>>>>> "file" is the filename given above. This will tell your >>>>>>>>>>>>>>>>>>>>>> processes how to >>>>>>>>>>>>>>>>>>>>>> find mpirun, which is acting as a meeting place to >>>>>>>>>>>>>>>>>>>>>> handle the connect/accept >>>>>>>>>>>>>>>>>>>>>> operations >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Now run your processes, and have them connect/accept to >>>>>>>>>>>>>>>>>>>>>> each other. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> The reason I cannot guarantee this will work is that >>>>>>>>>>>>>>>>>>>>>> these processes >>>>>>>>>>>>>>>>>>>>>> will all have the same rank && name since they all start >>>>>>>>>>>>>>>>>>>>>> as singletons. >>>>>>>>>>>>>>>>>>>>>> Hence, connect/accept is likely to fail. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> But it -might- work, so you might want to give it a try. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On Apr 23, 2010, at 8:10 AM, Grzegorz Maj wrote: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> To be more precise: by 'server process' I mean some >>>>>>>>>>>>>>>>>>>>>>> process that I >>>>>>>>>>>>>>>>>>>>>>> could run once on my system and it could help in >>>>>>>>>>>>>>>>>>>>>>> creating those >>>>>>>>>>>>>>>>>>>>>>> groups. >>>>>>>>>>>>>>>>>>>>>>> My typical scenario is: >>>>>>>>>>>>>>>>>>>>>>> 1. run N separate processes, each without mpirun >>>>>>>>>>>>>>>>>>>>>>> 2. connect them into MPI group >>>>>>>>>>>>>>>>>>>>>>> 3. do some job >>>>>>>>>>>>>>>>>>>>>>> 4. exit all N processes >>>>>>>>>>>>>>>>>>>>>>> 5. goto 1 >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> 2010/4/23 Grzegorz Maj <ma...@wp.pl>: >>>>>>>>>>>>>>>>>>>>>>>> Thank you Ralph for your explanation. >>>>>>>>>>>>>>>>>>>>>>>> And, apart from that descriptors' issue, is there any >>>>>>>>>>>>>>>>>>>>>>>> other way to >>>>>>>>>>>>>>>>>>>>>>>> solve my problem, i.e. to run separately a number of >>>>>>>>>>>>>>>>>>>>>>>> processes, >>>>>>>>>>>>>>>>>>>>>>>> without mpirun and then to collect them into an MPI >>>>>>>>>>>>>>>>>>>>>>>> intracomm group? >>>>>>>>>>>>>>>>>>>>>>>> If I for example would need to run some 'server >>>>>>>>>>>>>>>>>>>>>>>> process' (even using >>>>>>>>>>>>>>>>>>>>>>>> mpirun) for this task, that's OK. Any ideas? >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>> Grzegorz Maj >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> 2010/4/18 Ralph Castain <r...@open-mpi.org>: >>>>>>>>>>>>>>>>>>>>>>>>> Okay, but here is the problem. If you don't use >>>>>>>>>>>>>>>>>>>>>>>>> mpirun, and are not >>>>>>>>>>>>>>>>>>>>>>>>> operating in an environment we support for "direct" >>>>>>>>>>>>>>>>>>>>>>>>> launch (i.e., starting >>>>>>>>>>>>>>>>>>>>>>>>> processes outside of mpirun), then every one of those >>>>>>>>>>>>>>>>>>>>>>>>> processes thinks it is >>>>>>>>>>>>>>>>>>>>>>>>> a singleton - yes? >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> What you may not realize is that each singleton >>>>>>>>>>>>>>>>>>>>>>>>> immediately >>>>>>>>>>>>>>>>>>>>>>>>> fork/exec's an orted daemon that is configured to >>>>>>>>>>>>>>>>>>>>>>>>> behave just like mpirun. >>>>>>>>>>>>>>>>>>>>>>>>> This is required in order to support MPI-2 operations >>>>>>>>>>>>>>>>>>>>>>>>> such as >>>>>>>>>>>>>>>>>>>>>>>>> MPI_Comm_spawn, MPI_Comm_connect/accept, etc. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> So if you launch 64 processes that think they are >>>>>>>>>>>>>>>>>>>>>>>>> singletons, then >>>>>>>>>>>>>>>>>>>>>>>>> you have 64 copies of orted running as well. This >>>>>>>>>>>>>>>>>>>>>>>>> eats up a lot of file >>>>>>>>>>>>>>>>>>>>>>>>> descriptors, which is probably why you are hitting >>>>>>>>>>>>>>>>>>>>>>>>> this 65 process limit - >>>>>>>>>>>>>>>>>>>>>>>>> your system is probably running out of file >>>>>>>>>>>>>>>>>>>>>>>>> descriptors. You might check you >>>>>>>>>>>>>>>>>>>>>>>>> system limits and see if you can get them revised >>>>>>>>>>>>>>>>>>>>>>>>> upward. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> On Apr 17, 2010, at 4:24 PM, Grzegorz Maj wrote: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Yes, I know. The problem is that I need to use some >>>>>>>>>>>>>>>>>>>>>>>>>> special way for >>>>>>>>>>>>>>>>>>>>>>>>>> running my processes provided by the environment in >>>>>>>>>>>>>>>>>>>>>>>>>> which I'm >>>>>>>>>>>>>>>>>>>>>>>>>> working >>>>>>>>>>>>>>>>>>>>>>>>>> and unfortunately I can't use mpirun. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> 2010/4/18 Ralph Castain <r...@open-mpi.org>: >>>>>>>>>>>>>>>>>>>>>>>>>>> Guess I don't understand why you can't use mpirun - >>>>>>>>>>>>>>>>>>>>>>>>>>> all it does is >>>>>>>>>>>>>>>>>>>>>>>>>>> start things, provide a means to forward io, etc. >>>>>>>>>>>>>>>>>>>>>>>>>>> It mainly sits there >>>>>>>>>>>>>>>>>>>>>>>>>>> quietly without using any cpu unless required to >>>>>>>>>>>>>>>>>>>>>>>>>>> support the job. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Sounds like it would solve your problem. Otherwise, >>>>>>>>>>>>>>>>>>>>>>>>>>> I know of no >>>>>>>>>>>>>>>>>>>>>>>>>>> way to get all these processes into comm_world. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> On Apr 17, 2010, at 2:27 PM, Grzegorz Maj wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>>>>>>>>>>>>> I'd like to dynamically create a group of >>>>>>>>>>>>>>>>>>>>>>>>>>>> processes communicating >>>>>>>>>>>>>>>>>>>>>>>>>>>> via >>>>>>>>>>>>>>>>>>>>>>>>>>>> MPI. Those processes need to be run without mpirun >>>>>>>>>>>>>>>>>>>>>>>>>>>> and create >>>>>>>>>>>>>>>>>>>>>>>>>>>> intracommunicator after the startup. Any ideas how >>>>>>>>>>>>>>>>>>>>>>>>>>>> to do this >>>>>>>>>>>>>>>>>>>>>>>>>>>> efficiently? >>>>>>>>>>>>>>>>>>>>>>>>>>>> I came up with a solution in which the processes >>>>>>>>>>>>>>>>>>>>>>>>>>>> are connecting >>>>>>>>>>>>>>>>>>>>>>>>>>>> one by >>>>>>>>>>>>>>>>>>>>>>>>>>>> one using MPI_Comm_connect, but unfortunately all >>>>>>>>>>>>>>>>>>>>>>>>>>>> the processes >>>>>>>>>>>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>>>>>>> are already in the group need to call >>>>>>>>>>>>>>>>>>>>>>>>>>>> MPI_Comm_accept. This means >>>>>>>>>>>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>>>>>>> when the n-th process wants to connect I need to >>>>>>>>>>>>>>>>>>>>>>>>>>>> collect all the >>>>>>>>>>>>>>>>>>>>>>>>>>>> n-1 >>>>>>>>>>>>>>>>>>>>>>>>>>>> processes on the MPI_Comm_accept call. After I run >>>>>>>>>>>>>>>>>>>>>>>>>>>> about 40 >>>>>>>>>>>>>>>>>>>>>>>>>>>> processes >>>>>>>>>>>>>>>>>>>>>>>>>>>> every subsequent call takes more and more time, >>>>>>>>>>>>>>>>>>>>>>>>>>>> which I'd like to >>>>>>>>>>>>>>>>>>>>>>>>>>>> avoid. >>>>>>>>>>>>>>>>>>>>>>>>>>>> Another problem in this solution is that when I >>>>>>>>>>>>>>>>>>>>>>>>>>>> try to connect >>>>>>>>>>>>>>>>>>>>>>>>>>>> 66-th >>>>>>>>>>>>>>>>>>>>>>>>>>>> process the root of the existing group segfaults on >>>>>>>>>>>>>>>>>>>>>>>>>>>> MPI_Comm_accept. >>>>>>>>>>>>>>>>>>>>>>>>>>>> Maybe it's my bug, but it's weird as everything >>>>>>>>>>>>>>>>>>>>>>>>>>>> works fine for at >>>>>>>>>>>>>>>>>>>>>>>>>>>> most >>>>>>>>>>>>>>>>>>>>>>>>>>>> 65 processes. Is there any limitation I don't know >>>>>>>>>>>>>>>>>>>>>>>>>>>> about? >>>>>>>>>>>>>>>>>>>>>>>>>>>> My last question is about MPI_COMM_WORLD. When I >>>>>>>>>>>>>>>>>>>>>>>>>>>> run my processes >>>>>>>>>>>>>>>>>>>>>>>>>>>> without mpirun their MPI_COMM_WORLD is the same as >>>>>>>>>>>>>>>>>>>>>>>>>>>> MPI_COMM_SELF. >>>>>>>>>>>>>>>>>>>>>>>>>>>> Is >>>>>>>>>>>>>>>>>>>>>>>>>>>> there any way to change MPI_COMM_WORLD and set it >>>>>>>>>>>>>>>>>>>>>>>>>>>> to the >>>>>>>>>>>>>>>>>>>>>>>>>>>> intracommunicator that I've created? >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>>>>>> Grzegorz Maj >>>>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> <client.c><server.c>_______________________________________________ >>>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> users mailing list >>>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> users mailing list >>>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> users mailing list >>>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> users mailing list >>>>>>>>>>> us...@open-mpi.org >>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> users mailing list >>>>>>>>> us...@open-mpi.org >>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> users mailing list >>>>>>>> us...@open-mpi.org >>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> users mailing list >>>>>>> us...@open-mpi.org >>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> users mailing list >>>>>> us...@open-mpi.org >>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>> >>>>> >>>>> _______________________________________________ >>>>> users mailing list >>>>> us...@open-mpi.org >>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> users mailing list >>>> us...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>> >>> >>> _______________________________________________ >>> users mailing list >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>> >>> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Edgar Gabriel Assistant Professor Parallel Software Technologies Lab http://pstl.cs.uh.edu Department of Computer Science University of Houston Philip G. Hoffman Hall, Room 524 Houston, TX-77204, USA Tel: +1 (713) 743-3857 Fax: +1 (713) 743-3335
signature.asc
Description: OpenPGP digital signature