Skip to main content

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

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


GIF image

GIF image


Back to the top