Programmierung und Architekturen von Clusterrechnern

Übungspartner gesucht!

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Programmierung und Architekturen von Clusterrechnern
Wenn ich in der Vorlesung alles richtig verstanden hab, müssen wir ja die praktischen Aufgaben in Zweierteams abgeben und auch präsentieren. Gibt es jemanden, der wie ich auch noch einen Partner sucht?


Man kann es auch alleine machen:
“You can do a project in a group of one-to-two people. With 3 people, we will scale up the problem complexity/size!” [projects.pdf]


ich weiß, es ist schon ziemlich knapp vor den präsentationen, aber ich bekomm mein mpiprogramm einfach nicht kompiliert und zum laufen. kann mir jemand ne kurze deppenanleitung geben, wie ich das mach?
in den vorlesungsfolien sind so viele verschiedene varianten angegeben (mpicc bzw. mpic++, pbs, shell), ihc weiß nicht mehr, wo vorn und hinten ist :frowning:
würde mich echt freuen!


also ein einfacher Beispielcode in c++ waere:

#include <mpi.h>
#include <ostream>

using namespace std;

int
main(int argc, char **argv)
{
    int  numtasks, rank, rc, dest, source, foo;
    MPI_Status Stat;

    rc = MPI_Init(&argc,&argv);
    if (rc != MPI_SUCCESS) {
        cout << "Error starting MPI program. Terminating." << endl;
        MPI_Abort(MPI_COMM_WORLD, rc);
    }

    /* get number of processes */
    MPI_Comm_size(MPI_COMM_WORLD,&numtasks);
    /* get processnumber of this one */
    MPI_Comm_rank(MPI_COMM_WORLD,&rank);

    if (rank == 0)
    {
        dest = 1;
        source = 1;
        foo = 4;
        MPI_Send(&foo, 1, MPI_INT, dest, 1, MPI_COMM_WORLD);
        MPI_Recv(&foo, 1, MPI_INT, source, 1, MPI_COMM_WORLD, &Stat);
        cout << "process: " << rank << " foo^2: " << foo << endl;
    }
    else if (rank = 1)
    {
        dest = 0;
        source = 0;
        MPI_Recv(&foo, 1, MPI_INT, source, 1, MPI_COMM_WORLD, &Stat);
        cout << "process: " << rank << " got foo: " << foo << endl;
        foo = foo * foo;
        MPI_Send(&foo, 1, MPI_INT, dest, 1, MPI_COMM_WORLD);
    }

    MPI_Finalize();
}

kompilieren und ausfuehren mit: mpic++ filename mpirun -np 2 a.out
das startet dann 2 Kopien des Programms


okay, dankeschön! jetzt funktionierts bei mir auch… wurde eigentlich letzten freitag noch irgendwas über die vorträge etc. wichtiges gesagt? ich war leider krank und konnte nicht kommen…


noe am Freitag war nichts, ein Vortrag wurde schon gehalten. Das wars aber auch schon


dankeschön!