blob: 68969b5b08881640279bf4df16ea836b7dc81535 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#include <sys/stat.h>
#include <iostream>
#include <string>
using namespace std;
#include "common/config.h"
#include "messages/MPing.h"
#include "common/Mutex.h"
#include "msg/MPIMessenger.h"
class Pinger : public Dispatcher {
public:
Messenger *messenger;
explicit Pinger(Messenger *m) : messenger(m) {
m->set_dispatcher(this);
}
void dispatch(Message *m) {
//dout(1) << "got incoming " << m << endl;
delete m;
}
};
int main(int argc, char **argv) {
int num = 1000;
int myrank = mpimessenger_init(argc, argv);
int world = mpimessenger_world();
Pinger *p = new Pinger( new MPIMessenger(myrank) );
mpimessenger_start();
//while (1) {
for (int i=0; i<10000; i++) {
// ping random nodes
int d = rand() % world;
if (d != myrank) {
//cout << "sending " << i << " to " << d << endl;
p->messenger->send_message(new MPing(), d);
}
}
//cout << "shutting down" << endl;
//p->messenger->shutdown();
mpimessenger_wait();
mpimessenger_shutdown(); // shutdown MPI
}
|