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
|
${HOME}/installs/openmpi/bin/mpicc -g -o lat lat.c
|
||||||
|
|
||||||
init_elan: % : %.c
|
init_elan: % : %.c
|
||||||
gcc $< -o $@ -lelan4 -lelan -lrmscall -lelan3
|
gcc -g $< -o $@ -lelan4 -lelan -lrmscall -lelan3
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -rf $(EXECS)
|
-rm -rf $(EXECS)
|
||||||
|
@ -7,20 +7,30 @@
|
|||||||
#include <sys/fcntl.h>
|
#include <sys/fcntl.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
#include <elan/elan.h>
|
#include <elan/elan.h>
|
||||||
#include <elan/capability.h>
|
#include <elan/capability.h>
|
||||||
#include <qsnet/fence.h>
|
#include <qsnet/fence.h>
|
||||||
|
|
||||||
#define USE_BASEINIT 1
|
#include <elan4/library.h>
|
||||||
|
#define USE_BASEINIT 0
|
||||||
int self;
|
#define USE_ELANINIT (1-USE_BASEINIT)
|
||||||
int nproc;
|
|
||||||
|
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
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
#if USE_BASEINIT
|
#if USE_BASEINIT
|
||||||
ELAN_BASE *elan_base;
|
|
||||||
if (!(elan_base = elan_baseInit(0))) {
|
if (!(elan_base = elan_baseInit(0))) {
|
||||||
perror( "elan_baseInit() failed" );
|
perror( "elan_baseInit() failed" );
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -29,8 +39,31 @@ main (int argc, char *argv[])
|
|||||||
nproc = elan_base->state->nvp;
|
nproc = elan_base->state->nvp;
|
||||||
self = elan_base->state->vp;
|
self = elan_base->state->vp;
|
||||||
elan_gsync(elan_base->allGroup);
|
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
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user