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