Hi,
From what I could see, actually you can obviate the input-parse.xml  with a bit of rough work :).

1. To parse the objects to the spawning processes, first wrap your objects in to a derived data type (ex. MPI_Struct) which can be easily transferred from the web service to the spawned children. If you are using Axis/C, then this might be an easy map since you already have your data structs ready. So after spawning, send your object structs to the leading process of the spawned pool which from there you can distribute the objects to other processes in that pool. No need to use the file at this point since theres an inter communicator established between the webservice and the lead process when you call MPI_Spawn. Use this correctly within webservice and the lead process. Call 'MPI_Comm_get_parent' inside the lead child to get the webservice intercommunicator.

2. In this case, I'm not sure. But since the webservice runs only in one instance, you dont need  it to run in several processes. So as I could see, the main process can be a single process and it can be executed just as ./main_process without mpirun -np x commands. So this might work for you as well when the service is loaded inside the httpserver as a single service.
I think someone can comment on this whether is it safe and acceptable to run the main process without mpirun?


Prasad.

On Tue, Jul 28, 2009 at 8:35 AM, Ashika Umanga Umagiliya <aumanga@biggjapan.com> wrote:
Greetings all,

Please refer to the image at : http://i25.tinypic.com/v65ite.png

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:

#./svmWebservice

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

Any tips?
Thanks in advance,
umanga


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<aumanga@biggjapan.com> 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 : http://i30.tinypic.com/i707qq.png

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 (myService.so) and can not execute the
"mpirun".

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

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,
umanga


_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

    
  


_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



--
http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=3489381