Thanks, Barry. It is really a wonderful tool.
PS: The C STRING support of AMS is a bit strange. At very beginning, I can't 
understand the mechanism of STRING. So I added a CHAR data type to AMS for an 
alternate of STRING.   

Hope the AMS manual have some more detailed description to parallel usage and 
data types. 


> 
> 
> On Aug 6, 2012, at 9:36 AM, "Gong Ding" <gdiso at ustc.edu> wrote:
> 
> 
> 
> > Hi,
> 
> > I am trying to use AMS as data communicator between computational code and 
> > user monitor. The AMS works well for serial situation, however, I don't 
> > know how to use it for parallel environment. The manual has little 
> > information, too.
> 
> 
> 
>    You need to build AMS with the same MPI  that you will use in the parallel 
> program.
> 
> 
> 
> > 
> 
> > I'd like to know some thing about data synchronization. 
> 
> > Does AMS process data synchronization in MPI environment automatically? 
> > Should I call AMS_Comm_publish on every MPI processor, and create memory 
> > with AMS_Memory_create for my variables on each processor?
> 
> 
> 
>    There are different types of variables you can publish.
> 
> 
> 
>   AMS_Comm_publish() takes an argument AMS_Comm_type which would be MPI_TYPE 
> like in your case.
> 
> 
> 
>    AMS_Memory_add_field() takes an argument AMS_Shared_type  which can be 
> AMS_COMMON, AMS_DISTRIBUTED or AMS_REDUCED  and if it is reduced the 
> AMS_Reduction_type is AMS_SUM, AMS_MAX, AMS_MIN, or AMS_NONE.  See the manual 
> page for AMS_Memory_add_field() .
> 
> 
> 
>    If AMS_Shared_type is AMS_COMMON then AMS assumes that the values in those 
> locations are identical on all processes (and it brings over to the accessor 
> one set of those values), if distributed then each process has an array of 
> different values (and it brings over all those values, in a long array, on 
> the accessor) if reduce that it brings back the values after applying the 
> reduction operator across all the processes; so with sum it beings back the 
> sum of the values over all the processes.
> 
> 
> 
> > 
> 
> > If so, the accessor will see how many TCP/IP port? Or accessor only 
> > communicate with MPI processor 0 and processor 0 will broadcast the 
> > information to all the others?
> 
> 
> 
>    AMS completely manages the fact there are multiple "publishers", the 
> accessor transparently handles getting stuff from all the publisher nodes.
> 
> 
> 
> > 
> 
> > If not, should I only create AMS object on processor 0, and processor 0 
> > should broadcast what AMS get?
> 
> 
> 
>     Nope, you do not need to do this.
> 
> 
> 
>    Barry
> 
> 
> 
> > 
> 
> > Gong Ding
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> 
> 
> 

Reply via email to