Re: [OMPI devel] Using ompi_proc_t's proc_name.vpid as Universal rank

2007-11-30 Thread Sajjad Tabib
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

2007-11-29 Thread Sajjad Tabib
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

2007-10-31 Thread Sajjad Tabib
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

2007-10-29 Thread Sajjad Tabib
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

2007-10-18 Thread Sajjad Tabib
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.

2007-09-21 Thread Sajjad Tabib

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

2007-09-11 Thread Sajjad Tabib
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