Hello Gilles,

Thank you very much for your response.

My understanding is yes, this might be part of the future standard—but probably 
not from my work alone.  I’m currently just trying get a proof-of-concept and 
some performance metrics.

I have item one of your list completed, but not the others.  I will look into 
adding the MCA_PML_REQUEST_COLL case to mea_pml_ob1_start.

Would it also be feasible to create a new function and pointer in 
mca_coll_base_comm_coll_t struct, (i.e. mca_coll_base_module_istart, etc.) just 
to get a proof of concept?  Do you think this would be a fairly accurate 
representation (in regard to performance, not necessarily semantics) of how the 
standard\official implementation would work?


Once again, thanks very much for this information!


Regards,

-Bradley



On Jul 29, 2016, at 10:54 AM, Gilles Gouaillardet 
<gilles.gouaillar...@gmail.com<mailto:gilles.gouaillar...@gmail.com>> wrote:

Out of curiosity, is MPI_Ibcast_init (and friends) something that will/might be 
part of the future standard ?

if you want to implement this as a MCA, then you have (at least) to
- add an Ibcast_init field (function pointer) to mca_coll_base_comm_coll_t 
struct
- add a 'case MCA_PML_REQUEST_COLL:' in mca_pml_ob1_start
- ensure these request are progressed
- ensure these requests can be MPI_{Wait,Test,Probe!Request_free!Cancel } and 
friends

note all coll components must initialize the new ibcast_init field to NULL
and all pml components should handle MCA_PML_REQUEST_COLL.


Cheers,

Gilles


On Saturday, July 30, 2016, Bradley Morgan 
<morg...@auburn.edu<mailto:morg...@auburn.edu>> wrote:
Hello OpenMPI Developers,

(I am new to the community, so please forgive me if I violate any protocols or 
seem naive here…)


I am currently working on a prototype component for persistent nonblocking 
collectives (ompi->mca->coll->libpnbc).

I have integrated my new component and mapped MPI_IBcast to my own _init 
function, which initiates a request but does not start it.  Next, I would like 
to create a function pointer for MPI_Start to kick off these requests.  
However, the pointer(s) for MPI_Start live in the pml (point-to-point) 
framework and its implementation seems tacit to MCA.  I was able to trace the 
default mapping of MPI_Start for my build to 
pml->ob1->pml_ob1_start.c->mca_pml_ob1_start(), but I can’t seem to translate 
the magic in that path to my own component.

Alternatively, if trying to map MPI_Start is too difficult, I think I could 
also create a custom function like LIBPNBC_Start just to get past this and 
begin testing, but I have not yet found a clean way to make a custom component 
function visible and useable at the MPI level.


If anyone has any advice or can direct me to any applicable resources (mostly 
regarding function mapping \ publishing for MPI components) it would be greatly 
appreciated!


Thanks very much!


-Bradley
_______________________________________________
devel mailing list
devel@lists.open-mpi.org<javascript:;>
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@lists.open-mpi.org<mailto:devel@lists.open-mpi.org>
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Reply via email to