Hi,
I was playing with the Open MPI code last fall and I found many references to PERUSE. On searching further, I realised its role and found out that it has not yet been developed for MPICH.
I have been working on the sock device with the blocking and non-blocking modes for point-to-point calls. The prototype currently implements all the events specified by the PERUSE specification, excluding : PERUSE_COMM_REQ_XFER_BEGIN, and PERUSE_COMM_REQ_XFER_END. I am still working on these, as the same function, MPIDU_Socki_handle_write, is used to transfer both the control information and the data.
With respect to the API, the functions that are yet to be implemented are PERUSE_Event_propogate, PERUSE_Query_envirnoment and PERUSE_Query_queue_event_scope. These functions are not critical with regard to functioning of the prototype.
As a sample program, I tried the following, Please find the corresponding output files for rank0 and rank1 attached. They indicate the events that are occuring and the time of occurence.
( rank 0 ) (rank 1)
Hi Krishna,That is good to know. How did you even know about PERUSE? (I didn't think it was that well known.) How much of the interface have you implemented? We are interested in knowing more about what you have done.Regards,Rajeev
From: Krishna Chaitanya [mailto:kris.c1986@gmail.com]
Sent: Thursday, March 13, 2008 7:51 AM
To: thakur@mcs.anl.gov
Cc: goodell@mcs.anl.gov; balaji@mcs.anl.gov
Subject: Development of the PERUSE interface for MPICH2Hi,
As my final year B-Tech project, I have been working on developing the PERUSE interface for MPICH2. PERUSE is an attempt to expose fine-grained information about the internals of an MPI implementation by monitoring certain events of interest and the time elapsed between such events. The interface allows the user to define a set of events and register callbacks, which are to be invoked by the MPI library as and when an event of interest occurs.
PERUSE has been successfully integrated with Open-MPI.
I have the prototype working for blocking and non_blocking mode of data transfer with the sock device. I have experimented with a few examples having multiple senders and a slow receiver and have been able to generate meaningful output. Since the data generated is quite voluminous, I am now trying to present it in a graphical,user friendly manner.
I wish to have your feedback on this project to look at the possible areas of improvement and further work. Please let me know if you are interested.
Thanks,
Krishna Chaitanya K,
Final Year B-Tech,
Dept. of Information Technology,
National Institute of Technology,Karnataka,
India.
--
In the middle of difficulty, lies opportunity