save a simple initialization code
This commit was SVN r2532.
Этот коммит содержится в:
родитель
e8454acbe2
Коммит
252f57d673
@ -35,7 +35,7 @@ lat: % : %.c
|
||||
${HOME}/installs/openmpi/bin/mpicc -g -o lat lat.c
|
||||
|
||||
init_elan: % : %.c
|
||||
gcc $< -o $@ -lelan4 -lelan -lrmscall -lelan3
|
||||
gcc -g $< -o $@ -lelan4 -lelan -lrmscall -lelan3
|
||||
|
||||
clean:
|
||||
-rm -rf $(EXECS)
|
||||
|
@ -7,20 +7,30 @@
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <elan/elan.h>
|
||||
#include <elan/capability.h>
|
||||
#include <qsnet/fence.h>
|
||||
|
||||
#define USE_BASEINIT 1
|
||||
|
||||
int self;
|
||||
int nproc;
|
||||
#include <elan4/library.h>
|
||||
#define USE_BASEINIT 0
|
||||
#define USE_ELANINIT (1-USE_BASEINIT)
|
||||
|
||||
ELAN_LOCATION location;
|
||||
ELAN_CAPABILITY Cap;
|
||||
ELAN4_CTX *ctx = NULL;
|
||||
ELAN4_SDRAM *sdram = NULL;
|
||||
ELAN4_ALLOC *alloc = NULL;
|
||||
ELAN4_COOKIEPOOL *cpool = NULL;
|
||||
ELAN_BASE *elan_base;
|
||||
|
||||
int i, self;
|
||||
int nproc;
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
#if USE_BASEINIT
|
||||
ELAN_BASE *elan_base;
|
||||
if (!(elan_base = elan_baseInit(0))) {
|
||||
perror( "elan_baseInit() failed" );
|
||||
exit(1);
|
||||
@ -29,8 +39,31 @@ main (int argc, char *argv[])
|
||||
nproc = elan_base->state->nvp;
|
||||
self = elan_base->state->vp;
|
||||
elan_gsync(elan_base->allGroup);
|
||||
#else
|
||||
#elif USE_ELANINIT
|
||||
elan_base = (ELAN_BASE*) malloc(sizeof(ELAN_BASE));
|
||||
if (!(elan_base->state = elan_init(0))) {
|
||||
perror( "elan_init() failed" );
|
||||
exit(1);
|
||||
}
|
||||
|
||||
for (i = 0; i < 1; i++) {
|
||||
ELAN_STATE *elan_state;
|
||||
ELAN_CAPABILITY *cap;
|
||||
ELAN_LOCATION loc;
|
||||
|
||||
elan_state = elan_base->state;
|
||||
ctx = elan_state->ctx;
|
||||
cap = elan_state->cap;
|
||||
|
||||
if (elan4_add_p2pvp (ctx, i, cap) < 0)
|
||||
fprintf(stderr, "elan_init() failed" );
|
||||
elan4_block_inputter (ctx, 1);
|
||||
if (elan4_attach (ctx, cap))
|
||||
fprintf(stderr, "elan4_attach() failed" );
|
||||
}
|
||||
|
||||
nproc = elan_base->state->nvp;
|
||||
self = elan_base->state->vp;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user