Greetings all,

Please refer to the image at :

As mentioned in Lisandro's reply, my webservice is acting as a proxy to the MPI application.
In the webservice, the SOAP parameters are bind into C++ object model.

But I have several questions:

(1) It seems MPI_Comm_spawn() command just execute the MPI programm like an external application.
So, the C++ object-model created in webservice, is not accessible in my MPI application.(illustrated in blue line)
If thats the case,to pass the input parameters, I have to marshal my object-model into an XML file , then call MPI_Comm_spawn() with the filename as an argument,so that MPI programm can read the values from the XML file.(illustrated in red lines)
Is there any other way to do this?

(2) Before calling MPI_Comm_spawn() in my webservice,I have to initialize MPI by calling, MPI_Init(),MPI_Comm_get_parent()..etc.
So do I have to initialize MPI in my webservice logic.
If thats the case,I can't start my webservice in standard way like:


but in MPI way:
#mpirun -np 100 -hostfile ~./hosts svmWebservice                   
??? which is confusing ??

Any tips?
Thanks in advance,

Lisandro Dalcin wrote:
I do not know anything about implementing webservices, but you should
take a look at MPI-2 dynamic process management. This way, your
webservice can MPI_Comm_spawn() a brand-new set of parallel processes
doing the heavy work. This way, your webservice will act as a kind of
proxy application between the request coming from the outside world
and your parallel computing resources...

On Fri, Jul 17, 2009 at 12:44 AM, Ashika Umanga
Umagiliya<> wrote:
Greetings all,

I am in the design level of parallizing an SVM algorithm.We need to expose
this as a webservice.I have decided to go with Axis2/C implementation.

Please refer to :

As can be seen in the Figure1 , can I embedd my MPI logic in side my
Webservice ? I guess that its not possible because the webservice is
packaged as a static library ( and can not execute the

In Figure2, I have illustrated another alternative.In my Webservice, I
invoke my parallel program (myParallelProg) using "mpirun" and other

Is there any good design to accomplish what I am trying to do?I think the
second is not a good design ?

Thanks in advance,

users mailing list