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  
Sent by: devel-boun...@open-mpi.org
11/30/07 07:22 AM
Please respond to
Open MPI Developers 


To
Open MPI Developers 
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  
Sent by: devel-boun...@open-mpi.org
10/31/07 07:29 AM
Please respond to
Open MPI Developers 


To
Open MPI Developers 
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


Re: [OMPI devel] PML cm and heterogeneous support

2007-10-25 Thread Sajjad Tabib
Hi Brian,

I have actually created a new MTL, in which I have added heterogeneous 
support. To experiment whether CM worked in this environment, I took out 
the safeguards that prevented one to use CM in a heterogeneous 
environment. Miraculously, things have been working so far. I haven't 
examined data integrity to an extent that I could say everything works 
perfectly, but with MPI_INTS, I do not have any endian problems. Now, 
based on my initial tests, I have came to the understanding that the PML 
CM safeguard against heterogeneous environments was a mechanism to prevent 
users from using existing MTLs. But, if an MTL supports heterogeneous 
communication, then it is possible to use the CM component. What is your 
take on this? 
Anyways, going back to the datatype usage. When you say that: "it's known 
the datatype usage in the CM PML won't support heterogeneous operation" 
could you please breifly explain this in more detail? I have been using 
ompi_mtl_datatype_pack and ompi_mtl_datatype_unpack, which use 
ompi_convertor_pack and ompi_convertor_unpack, for data packing. Do you 
mean that these functions will not work correctly?

Thank You, 

Sajjad Tabib




Brian Barrett  
Sent by: devel-boun...@open-mpi.org
10/24/07 10:04 PM
Please respond to
Open MPI Developers 


To
Open MPI Developers 
cc

Subject
Re: [OMPI devel] PML cm and heterogeneous support






No, it's because the CM PML was never designed to be used in a 
heterogeneous environment :).  While the MX BTL does support 
heterogeneous operations (at one point, I believe I even had it 
working), none of the MTLs have ever been tested in heterogeneous 
environments and it's known the datatype usage in the CM PML won't 
support heterogeneous operation.

Brian

On Oct 24, 2007, at 6:21 PM, Jeff Squyres wrote:

> George / Patrick / Rich / Christian --
>
> Any idea why that's there?  Is that because portals, MX, and PSM all
> require homogeneous environments?
>
>
> On Oct 18, 2007, at 3:59 PM, Sajjad Tabib wrote:
>
>>
>> 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
>> ___
>> 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

___
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel



[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] Module Design Concept

2007-10-08 Thread Sajjad Tabib
Hi,

I'm implementing a new MTL component that uses message queues to keep 
track of posted and unexpected messages. I intended to do this by creating 
two global queues, one for posted and one for unexpected, until I found 
that the portals MTL uses a different approach in their queue 
implemenation. The portal code uses handles to the queues from inside 
their mca_mtl_portals_module_t to post messages. I couldn't help but 
wonder, why are the queue handles here? What are the design implications 
of defining these handle queues in this module struct rather than globally 
defining them? 
I'm an Open MPI newbie and sort of confused on the modular approach taken 
here and was hoping somebody could point out the pros and the cons of the 
two approaches. I guess my next question would be: In general, what would 
you put into a module struct and what wouldn't you?
I will appreciate any pointers that you could give me to help me 
understand this concept.

Thanks in advance,

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  
Sent by: devel-boun...@open-mpi.org
09/08/07 01:34 PM
Please respond to
Open MPI Developers 


To
Open MPI Developers 
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


[OMPI devel] Adding a new component

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