Re: [OMPI devel] Using ompi_proc_t's proc_name.vpid as Universal rank
Hi, Thanks for the clarification. So, now I am wondering how rank information regarding processes in MPI_COMM_WORLD are assigned. Is there a table that stores unique integer values for processess or is rank assignment done in some other manner? Thanks, Sajjad Tabib Tim Prins <tpr...@cs.indiana.edu> Sent by: devel-boun...@open-mpi.org 11/30/07 07:22 AM Please respond to Open MPI Developers <de...@open-mpi.org> To Open MPI Developers <de...@open-mpi.org> cc Subject Re: [OMPI devel] Using ompi_proc_t's proc_name.vpid as Universal rank Hi Sajjad, The vpid is not unique. If you do a comm_spawn then the newly launched processes will have a new jobid, and their vpids will start at 0. So the whole process name is unique. However, there is talk now of being able to join 2 jobs that were started completely independently. This may lead to the point where a process name is no longer unique, however this work appears to be a ways out and as far as I know no decisions have been made on it yet. Hope this helps, Tim Sajjad Tabib wrote: > > Hello, > > I have a proprietary transport/messaging layer that sits below an MTL > component. This transport layer requires OpenMPI to assign it a rank > that is unique and specific to that process and will not change from > execution to termination. In a way, I am trying to find a one-one > correspondence between a process's universal rank in OpenMPI and this > transport layer. I began looking at ompi_proc_t from different processes > and seemingly found a unique identifier, proc_name.vpid. Consequently, I > assigned the ranks to each process in my transport layer based on the > value of the local vpid of each process. > I have not tested this thoroughly, but it has been working so far. > Although, I would like to make sure that this is a good approach, or > know, at least, whether if there are other ways to do this. I would > appreciate it if you could leave me feedback or give suggestions on how > to assign universal ranks to a proprietary transport software. > > Thanks for your help, > > Sajjad Tabib > > > > > ___ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel
[OMPI devel] Using ompi_proc_t's proc_name.vpid as Universal rank
Hello, I have a proprietary transport/messaging layer that sits below an MTL component. This transport layer requires OpenMPI to assign it a rank that is unique and specific to that process and will not change from execution to termination. In a way, I am trying to find a one-one correspondence between a process's universal rank in OpenMPI and this transport layer. I began looking at ompi_proc_t from different processes and seemingly found a unique identifier, proc_name.vpid. Consequently, I assigned the ranks to each process in my transport layer based on the value of the local vpid of each process. I have not tested this thoroughly, but it has been working so far. Although, I would like to make sure that this is a good approach, or know, at least, whether if there are other ways to do this. I would appreciate it if you could leave me feedback or give suggestions on how to assign universal ranks to a proprietary transport software. Thanks for your help, Sajjad Tabib
Re: [OMPI devel] Question regarding MCA_PML_CM_SEND_REQUEST_INIT_COMMON
Hi Jeff, Now that you mention it, I believe you are right. In fact, I did not know that I needed to set the req_status.MPI_ERROR in my MTL. I looked at the mx mtl and realized that req_status.MPI_ERROR is getting set in their progress function. So, in general, when do you set the req_status.MPI_ERROR? After a send/recv has completed successfully? Thank You, Sajjad Tabib Jeff Squyres <jsquy...@cisco.com> Sent by: devel-boun...@open-mpi.org 10/31/07 07:29 AM Please respond to Open MPI Developers <de...@open-mpi.org> To Open MPI Developers <de...@open-mpi.org> cc Subject Re: [OMPI devel] Question regarding MCA_PML_CM_SEND_REQUEST_INIT_COMMON I haven't done any work in the cm pml so I can't definitively answer your question, but wouldn't you set req_status.MPI_ERROR in your MTL depending on the result of the request? On Oct 29, 2007, at 9:20 AM, Sajjad Tabib wrote: > > Hi, > > I was issuing an MPI_Bcast in a sample program and was hitting an > unknown error; at least that was what MPI was telling me. I traced > through the code to find my error and came upon > MCA_PML_CM_REQUEST_INIT_COMMON macro function in pml_cm_sendreq.h. > I looked at the function and noticed that in this function the > elements of req_status were getting initialized; however, > req_status.MPI_ERROR was not. I thought that maybe MPI_ERROR must > also require initialization because if the value of MPI_ERROR was > some arbitrary value not equal to MPI_SUCCESS then my program will > definitely die. Unless, MPI_ERROR is propragating from upper layers > to signify an error, but I wasn't sure. Anyway, I assumed that > MPI_ERROR was not propagating from upper layers, so then I set > req_status.MPI_ERROR to MPI_SUCCUSS and reran my test program. My > program worked. Now, having gotten my program to work, I thought I > should run this by you to make sure that MPI_ERROR was not > propagating from upper layers. Is it ok that I did a: > "(req_send)->req_base.req_ompi.req_status.MPI_ERROR = MPI_SUCCESS;" > in MCA_PML_CM_REQUEST_INIT_COMMON? > > Thank You, > > Sajjad Tabib > ___ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel -- Jeff Squyres Cisco Systems ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel
[OMPI devel] Question regarding MCA_PML_CM_SEND_REQUEST_INIT_COMMON
Hi, I was issuing an MPI_Bcast in a sample program and was hitting an unknown error; at least that was what MPI was telling me. I traced through the code to find my error and came upon MCA_PML_CM_REQUEST_INIT_COMMON macro function in pml_cm_sendreq.h. I looked at the function and noticed that in this function the elements of req_status were getting initialized; however, req_status.MPI_ERROR was not. I thought that maybe MPI_ERROR must also require initialization because if the value of MPI_ERROR was some arbitrary value not equal to MPI_SUCCESS then my program will definitely die. Unless, MPI_ERROR is propragating from upper layers to signify an error, but I wasn't sure. Anyway, I assumed that MPI_ERROR was not propagating from upper layers, so then I set req_status.MPI_ERROR to MPI_SUCCUSS and reran my test program. My program worked. Now, having gotten my program to work, I thought I should run this by you to make sure that MPI_ERROR was not propagating from upper layers. Is it ok that I did a: "(req_send)->req_base.req_ompi.req_status.MPI_ERROR = MPI_SUCCESS;" in MCA_PML_CM_REQUEST_INIT_COMMON? Thank You, Sajjad Tabib
[OMPI devel] PML cm and heterogeneous support
Hi, I am tried to run an MPI program in a heterogeneous environment using the pml cm component. However, open mpi returned with an error message indicating that PML add procs returned "Not supported". I dived into the cm code to see what was wrong and I came upon the code below, which basically shows that if the processes are running on different architectures, then return "not supported". Now, I'm wondering whether my interpretation is correct or not. Is it true that the cm component does not support a heterogeneous environment? If so, will the developers support this in the future? How could I get around this while still using the cm component? What will happen if I rebuilt openmpi without these statements? I would appreciate your help. Code: mca_pml_cm_add_procs(){ #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT 107 for (i = 0 ; i < nprocs ; ++i) { 108 if (procs[i]->proc_arch != ompi_proc_local()->proc_arch) { 109 return OMPI_ERR_NOT_SUPPORTED; 110 } 111 } 112 #endif . . . } Sajjad Tabib
[OMPI devel] Sajjad Tabib is out of the office.
I will be out of the office starting 09/21/2007 and will not return until 10/01/2007. I will respond to your message when I return.
Re: [OMPI devel] Adding a new component
Hi Aurelien, Thank you for the pointers. I was able to plug in a component to an existing framework. Thanks again, Sajjad Aurelien Bouteiller <boute...@cs.utk.edu> Sent by: devel-boun...@open-mpi.org 09/08/07 01:34 PM Please respond to Open MPI Developers <de...@open-mpi.org> To Open MPI Developers <de...@open-mpi.org> cc Subject Re: [OMPI devel] Adding a new component Hi Sajjad, First it will depend wether you are writing a new component in an existing framework (let say you are writing a new BTL for a new type of interconnect) or a totally new framework (you want to have a family of component that can manage a totally new functionality in Open MPI). In each Framework there is a "base" which take care of the component selection process. If you are just adding a component, you will just need to provide a mca_mycomponent_init(bool enable_progress_threads, bool enable_mpi_threads) as described in the mca_component_t structure. The mca_framework_base_select will then take care of everything for you. If you want to add a new framework you'll have to create a selection function by yourself (all along with a full bunch of other functions to populate the base of the framework). I'll give you more details on this if it is relevant for you, just ask. Aurelien Le 7 sept. 07 à 17:21, Sajjad Tabib a écrit : Hi, I am a complete newbie to Open MPI internals and just began browsing the code and reading up on slides and papers. From what I have read, I learned that I have to create a new component. What I do not know is how to make MPI aware of it or should I say make MPI open and select my component. I found a set of slides that briefly went over adding components. For example, it briefly described that I must add PARAM_INIT_FILE and PARAM_CONFIG_FILES options in configure.params, but I'm not sure what these mean. Does anybody know of any tutorials/documents that could help me with this? Any help is greatly appreciated. S Tabib ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel