Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-user] MPI Barrier Analysis

For reference to this thread, the bug is https://bugs.eclipse.org/bugs/show_bug.cgi?id=356745
(Sorry, I thought I had responded to the thread, but I had responded to Steve)


...Beth

Beth Tibbitts
Eclipse Parallel Tools Platform  http://eclipse.org/ptp
IBM STG - High Performance Computing Tools
Mailing Address:  IBM Corp., 745 West New Circle Road, Lexington, KY 40511


Inactive hide details for "Steven R. Brandt" ---09/05/2011 01:27:09 PM---done On 09/04/2011 03:39 PM, Beth Tibbitts wrote:"Steven R. Brandt" ---09/05/2011 01:27:09 PM---done On 09/04/2011 03:39 PM, Beth Tibbitts wrote:


    From:

"Steven R. Brandt" <sbrandt@xxxxxxxxxxx>

    To:

Beth Tibbitts/Watson/IBM@IBMUS

    Date:

09/05/2011 01:27 PM

    Subject:

Re: [ptp-user] MPI Barrier Analysis




done

On 09/04/2011 03:39 PM, Beth Tibbitts wrote:

    Yes I think you showed me this in July... sorry for not following up.
    I looked then, and I seem to remember that Barrier Analysis is supported only
    on C, not C++ programs.  I can't find where we document that, though.
    I looked at all the test cases we originally ran it on - Tcgmsg, Skami, sBLAS, ParMetic, MPB, FFT,and Armci, and they are all C.


    The paper that describes the algorithm, "Barrier Matching for Programs with Textually Unaligned Barriers" by Zhang and Duesterwald,
    PPoPP 2007, does say  (in Section 6), "
    We have implemented multi-valued _expression_ slicing
    and barrier matching for MPI/C programs as part of the Eclipse Parallel Tools Platform (PTP) project (
    www.eclipse.org/ptp)."
    But we should have stated it more clearly in the PTP documentation.


    So I think the answer is, it doesn't support C++, but I should document that and make it fail more gracefully on C++ programs.
    Can you please open a bugzilla bug on this, Steve? Thanks.



    ...Beth

    Beth Tibbitts
    Eclipse Parallel Tools Platform  
    http://eclipse.org/ptp
    IBM STG - High Performance Computing Tools
    Mailing Address:  IBM Corp., 745 West New Circle Road, Lexington, KY 40511


    Inactive
          hide details for "Steven R. Brandt" ---09/03/2011
          04:36:39 PM---I have a relatively simple program, hello world
          + send"Steven R. Brandt" ---09/03/2011 04:36:39 PM---I have a relatively simple program, hello world + send messages + a  barrier. When I run MPI Barrier
      From: 

    "Steven R. Brandt"
    <sbrandt@xxxxxxxxxxx>
      To: 

    PTP User
    <ptp-user@xxxxxxxxxxx>
      Date: 

    09/03/2011 04:36 PM
      Subject: 

    [ptp-user] MPI Barrier Analysis
      Sent by: 

    ptp-user-bounces@xxxxxxxxxxx




    I have a relatively simple program, hello world + send messages + a
    barrier. When I run MPI Barrier Analysis I get this "
    java.util.EmptyStackException
       at java.util.Stack.peek(Stack.java:102)
       at
    org.eclipse.ptp.pldt.mpi.analysis.cdt.graphs.impl.CallGraph.RV_DFS(CallGraph.java:261)
       at
    org.eclipse.ptp.pldt.mpi.analysis.cdt.graphs.impl.CallGraph.checkRecursive(CallGraph.java:187)
       at
    org.eclipse.ptp.pldt.mpi.analysis.cdt.graphs.impl.CallGraph.buildCG(CallGraph.java:138)
       at
    org.eclipse.ptp.pldt.mpi.analysis.actions.MPIAnalysisManager.run(MPIAnalysisManager.java:49)
       at "

    This happens whether I select the project our source file in the project
    explorer.

    Any ideas?

    BTW, the source file is below.

    Cheers,
    Steve

    //============================================================================
    // Name        : hello.cpp
    // Author      :
    // Version     :
    // Copyright   : Your copyright notice
    // Description : Hello World in C++, Ansi-style
    //============================================================================

    #include <mpi.h>
    #include <stdio.h>
    #include <string.h>
    using namespace std;

    int main(int argc, char **argv) {
       MPI_Init(&argc, &argv);
       int rank,p;
       char message[100];
       MPI_Comm_rank(MPI_COMM_WORLD, &rank);
       MPI_Comm_size(MPI_COMM_WORLD, &p);
       int source=0,dest;
       int tag = 123;
       MPI_Status status;

       if (rank == 0) { // the master task
           printf("Hello From process 0: Num processes: %d\n", p);
           for (source = 1; source < p; source++) {
               MPI_Recv(message, 100, MPI_CHAR, source, tag, MPI_COMM_WORLD,
    &status);
               printf("%s\n", message);
           }
       } else { // worker tasks
           /* create message */
           sprintf(message, "Hello from process %d!", rank);
           dest = 0;
           /* use strlen+1 so that '\0' get transmitted */
           MPI_Send(message, strlen(message) + 1, MPI_CHAR, dest, tag,
                   MPI_COMM_WORLD);
       }
       MPI_Barrier(MPI_COMM_WORLD);
       MPI_Finalize();
       return 0;
    }

    _______________________________________________
    ptp-user mailing list

    ptp-user@xxxxxxxxxxx
    https://dev.eclipse.org/mailman/listinfo/ptp-user




    _______________________________________________
    ptp-user mailing list
    ptp-user@xxxxxxxxxxx
    https://dev.eclipse.org/mailman/listinfo/ptp-user


GIF image

GIF image


Back to the top