本文整理汇总了C++中shmem_finalize函数的典型用法代码示例。如果您正苦于以下问题:C++ shmem_finalize函数的具体用法?C++ shmem_finalize怎么用?C++ shmem_finalize使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了shmem_finalize函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
int
main(int argc, char* argv[])
{
int i;
for(i = 0; i < N_THREADS*N_ELEMS; ++i) {
source[i] = i+1;
}
int tl_expected = SHMEMX_THREAD_MULTIPLE;
int tl;
shmemx_init_thread(tl_expected,&tl);
if (tl_expected != tl) {
printf("Could not initialize with desired thread level (%d "
"requested, got %d)\n", tl_expected, tl);
return 0;
}
if (shmem_n_pes() == 1) {
printf("%s: Requires number of PEs > 1\n", argv[0]);
shmem_finalize();
return 0;
}
pthread_t threads[N_THREADS];
pthread_barrier_init(&fencebar,NULL,N_THREADS);
fprintf(stderr,"Starting threads\n");
for(i = 0; i < N_THREADS; ++i) {
/* fprintf(stderr,"Starting thread %d\n",i); */
ptrdiff_t tid = i;
pthread_create(&threads[i],NULL,&roundrobin,(void*)tid);
}
for(i = 0; i < N_THREADS; ++i) {
pthread_join(threads[i],NULL);
}
pthread_barrier_destroy(&fencebar);
if (0 != memcmp(source, target, sizeof(long) * N_THREADS*N_ELEMS)) {
fprintf(stderr,"[%d] Src & Target mismatch?\n",shmem_my_pe());
for (i = 0 ; i < 10 ; ++i) {
printf("%ld,%ld ", source[i], target[i]);
}
printf("\n");
shmem_global_exit(1);
}
shmem_finalize();
return 0;
}
开发者ID:jpdoyle,项目名称:SOS,代码行数:54,代码来源:threading.c
示例2: main
int
main(int argc, char* argv[])
{
int i, j, num_pes;
int failed = 0;
shmem_init();
if (shmem_my_pe() == 0) {
num_pes=shmem_n_pes();
for(j = 0; j < num_pes; j++) {
memset(target, 0, sizeof(long) * 10);
shmem_long_get_nbi(target, source, 10, j);
shmem_quiet();
for (i = 0; i < 10; i++) {
if (source[i] != target[i]) {
fprintf(stderr,"[%d] get_nbi from PE %d: target[%d] = %ld, expected %ld\n",
shmem_my_pe(), j, i, target[i], source[i]);
failed = 1;
}
}
if (failed)
shmem_global_exit(1);
}
}
shmem_finalize();
return 0;
}
开发者ID:caomw,项目名称:SOS,代码行数:33,代码来源:get_nbi.c
示例3: main
int
main(void)
{
double *f;
int me;
shmem_init();
me = shmem_my_pe();
f = (double *) shmem_malloc(sizeof(*f));
*f = PI;
shmem_barrier_all();
if (me == 0) {
shmem_double_p(f, E, 1);
}
shmem_barrier_all();
if (me == 1) {
printf("PE %d: %f, %s\n",
me, *f, (fabs(*f - E) < epsilon) ? "OK" : "FAIL");
}
shmem_free(f);
shmem_finalize();
return 0;
}
开发者ID:openshmem-org,项目名称:openshmem-examples,代码行数:32,代码来源:dip.c
示例4: swapnum
void swapnum(int i, int j){
int temp = i;
i = j;
j = temp;
// start_pes(1);
shmem_finalize();
}
开发者ID:openshmem-org,项目名称:osa-testcodes,代码行数:7,代码来源:test-startpes-ipa.c
示例5: main
int main(void)
{
int i;
int my_pe, num_pes;
for (i = 0; i < SHMEM_BCAST_SYNC_SIZE; i += 1) {
pSync[i] = _SHMEM_SYNC_VALUE;
}
shmem_init();
my_pe = shmem_my_pe();
num_pes = shmem_n_pes();
for (i = 0; i < N; i += 1) {
src[i] = my_pe + i;
}
shmem_barrier_all();
shmem_long_max_to_all(dst, src, N, 0, 0, num_pes, pWrk, pSync);
printf("%d/%d dst =", my_pe, num_pes);
for (i = 0; i < N; i+= 1) {
printf(" %ld", dst[i]);
}
printf("\n");
shmem_finalize();
return 0;
}
开发者ID:ICLDisco,项目名称:ompi,代码行数:33,代码来源:oshmem_max_reduction.c
示例6: main
int main(int argc, char * argv[])
{
/* Get PE information */
shmem_init();
me = _my_pe();
npes = _num_pes();
/* Initialize and send on PE 0 */
if (me == 0) {
for (i = 0; i < 8; i++)
src[i] = i + 1;
/* Put source date at PE 0 to dest at PE 1+ */
for (i = 1; i < npes; i++)
shmem_put64(dest, src, 8 * sizeof(int) / 8, i);
}
/* Make sure the transfer is complete */
shmem_barrier_all();
/* Print from PE 1+ */
if (me > 0) {
printf("PE %d: %d", me, dest[0]);
for (i = 1; i < 8; i++)
printf(",%d", dest[i]);
printf("\n");
}
shmem_finalize();
return 0;
}
开发者ID:A1ve5,项目名称:slurm,代码行数:30,代码来源:test1.96.prog.c
示例7: main
int
main ()
{
int i;
for (i = 0; i < _SHMEM_REDUCE_SYNC_SIZE; i += 1) {
pSync[i] = _SHMEM_SYNC_VALUE;
}
shmem_init ();
for (i = 0; i < N; i += 1) {
src[i] = shmem_my_pe () + i;
}
shmem_barrier_all ();
shmem_long_max_to_all (dst, src, 3, 0, 0, 4, pWrk, pSync);
printf ("%d/%d dst =", shmem_my_pe (), shmem_n_pes ());
for (i = 0; i < N; i += 1) {
printf (" %ld", dst[i]);
}
printf ("\n");
shmem_finalize ();
return 0;
}
开发者ID:kseager,项目名称:openshmem-examples,代码行数:28,代码来源:reduce-max.c
示例8: main
int
main (int argc, char **argv)
{
int i;
int nextpe;
int me, npes;
long src[N];
long *dest;
shmemx_request_handle_t handle;
shmem_init ();
me = shmem_my_pe ();
npes = shmem_n_pes ();
for (i = 0; i < N; i += 1) {
src[i] = (long) me;
}
dest = (long *) shmem_malloc (N * sizeof (*dest));
nextpe = (me + 1) % npes;
shmemx_long_put_nb (dest, src, N, nextpe, &handle);
shmemx_wait_req (handle);
shmem_barrier_all ();
shmem_free (dest);
shmem_finalize ();
return 0;
}
开发者ID:openshmem-org,项目名称:openshmem-examples,代码行数:34,代码来源:arrput_nb.c
示例9: main
int
main(void)
{
long *f;
int me;
shmem_init();
me = shmem_my_pe();
f = (long *) shmem_malloc(sizeof(*f));
*f = 3;
shmem_barrier_all();
printf("PE %d: before put, f = %ld\n", me, *f);
if (me == 0) {
shmem_long_p(f, 42, 1);
}
shmem_barrier_all();
if (me == 1) {
printf("PE %d: after put, f = %ld, %s\n", me, *f,
(*f == 42) ? "OK" : "FAIL");
}
shmem_finalize();
return 0;
}
开发者ID:openshmem-org,项目名称:openshmem-examples,代码行数:31,代码来源:lip.c
示例10: main
int
main(void)
{
int i;
shmem_init();
npes = shmem_n_pes();
me = shmem_my_pe();
for (i = 0; i < DST_SIZE; i++) {
dst[i] = -1;
}
for (i = 0; i < SHMEM_COLLECT_SYNC_SIZE; i += 1) {
pSync[i] = SHMEM_SYNC_VALUE;
}
shmem_barrier_all();
shmem_fcollect64(dst, src, 2, 0, 0, npes, pSync);
shmem_barrier_all();
show_dst("AFTER");
shmem_finalize();
return 0;
}
开发者ID:openshmem-org,项目名称:openshmem-examples,代码行数:29,代码来源:fcollect64.c
示例11: main
int main(int argc, char **argv)
{
const long int ITER_CNT = 100;
const long int MAX_MSG_SIZE = 1048576;
int* source_addr;
int peer;
long int i=0,j=0, buff_size;
long long int start_time, stop_time, res;
double time;
shmem_init();
int pe_id = shmem_my_pe();
source_addr = (int*) malloc(MAX_MSG_SIZE);
if(pe_id == 1) {
if(shmem_n_pes()!=4)
fprintf(stderr,"Num PEs should be ==4");
printf("#Message Cnt;Time(s);MR(msgs/sec)\n");
}
if (pe_id==1)
peer = 3;
else if(pe_id==3)
peer = 1;
get_rtc_res_(&res);
for (i = 0; i < SHMEM_BARRIER_SYNC_SIZE; i += 1){
pSync[i] = SHMEM_SYNC_VALUE;
}
/* Collective operation: Implicit barrier on return from attach */
shmemx_am_attach(HANDLER_ID_REQ, &sample_req_handler);
shmem_barrier_all();
if(pe_id == 1 || pe_id == 3) {
for(buff_size=1; buff_size<=MAX_MSG_SIZE; buff_size*=2) {
shmem_barrier(1,1,2,pSync);
get_rtc_(&start_time);
for(j=1;j<=ITER_CNT;j++) {
if(pe_id == 1) {
shmemx_am_request(peer, HANDLER_ID_REQ, source_addr, buff_size);
shmemx_am_quiet();
}
}
shmem_barrier(1,1,2,pSync);
get_rtc_(&stop_time);
time = (stop_time - start_time)*1.0/(double)res/ITER_CNT;
if(pe_id == 1) {
printf("%20ld;%20.12f;%20.12f\n",
buff_size, time, (double)buff_size/time);
}
fflush(stdout);
}
}
shmem_barrier_all();
shmem_finalize();
}
开发者ID:openshmem-org,项目名称:openshmem-am-testsuite,代码行数:60,代码来源:bw_unidirectional_1sided.c
示例12: main
int
main()
{
int me, npes;
setbuf(stdout, NULL);
shmem_init();
me = shmem_my_pe();
npes = shmem_n_pes();
if (me == 0) {
int i;
for (i = 1; i < npes; i += 1) {
printf("From %d: PE %d is ", me, i);
printf("%s", shmem_pe_accessible(i) ? "" : "NOT ");
printf("accessible\n");
}
}
else {
;
}
shmem_finalize();
return 0;
}
开发者ID:openshmem-org,项目名称:openshmem-examples,代码行数:27,代码来源:ping.c
示例13: main
int main(int argc, char* argv[]) {
int verbose = 0;
if(argc > 1) {
verbose = !strcmp("-v",argv[1]);
}
int errors = 0;
int me, myshmem_n_pes;
shmem_init();
myshmem_n_pes = shmem_n_pes();
me = shmem_my_pe();
srand(1+me);
int nextpe = (me+1)%myshmem_n_pes;
#define RUN_TEST(TYPENAME,TYPE) do { \
errors += (TYPENAME##_rmaTest(nextpe,verbose)); \
} while(0)
SHMEM_DECLARE_FOR_RMA(RUN_TEST);
shmem_finalize();
return errors;
}
开发者ID:psonawane27,项目名称:SOS,代码行数:27,代码来源:rma_coverage.c
示例14: main
int
main(void)
{
shmem_init();
shmem_clear_cache_inv();
shmem_set_cache_inv();
shmem_clear_cache_line_inv(&var);
shmem_set_cache_line_inv(&var);
shmem_udcflush();
shmem_udcflush_line(&var);
shmem_clear_cache_inv();
shmem_set_cache_inv();
shmem_clear_cache_line_inv(&var);
shmem_set_cache_line_inv(&var);
shmem_udcflush();
shmem_udcflush_line(&var);
shmem_finalize();
return 0;
}
开发者ID:openshmem-org,项目名称:openshmem-examples,代码行数:33,代码来源:cache.c
示例15: main
int main(int argc, char *argv[])
{
shmem_init();
input_file = argv[1];
mype = shmem_my_pe();
NumProcs = shmem_n_pes();
shmemx_am_attach(hid_BESTPATH, &handler_master_bestpath);
shmemx_am_attach(hid_SUBSCRIBE, &handler_master_subscribe);
shmemx_am_attach(hid_PUTPATH, &handler_master_putpath);
shmemx_am_mutex_init(&lock_shortestlen);
shmemx_am_mutex_init(&lock_queue);
shmemx_am_mutex_init(&lock_workers_stack);
if (NumProcs<2) {
printf("At least 2 processes are required\n");
exit(-1);
}
// Initialize distance matrix. Ususally done by one process
// and bcast, or initialized from a file in a shared file system.
Fill_Dist(); // process 0 read the data and broadcast it to the others
if (mype==0)
Master();
else
Worker();
//TODO
// shmemx_am_detach(hid_BESTPATH);
// shmemx_am_detach(hid_SUBSCRIBE);
// shmemx_am_detach(hid_PUTPATH);
shmem_finalize();
return 0;
}
开发者ID:sidjana,项目名称:traveling_salesman_shmem_am,代码行数:35,代码来源:tsp.cpp
示例16: main
int
main ()
{
int i;
int me;
int npes;
for (i = 0; i < _SHMEM_REDUCE_SYNC_SIZE; i += 1) {
pSync[i] = _SHMEM_SYNC_VALUE;
}
shmem_init ();
me = shmem_my_pe ();
npes = shmem_n_pes ();
src = me + 1;
shmem_barrier_all ();
shmem_int_or_to_all (&dst, &src, 1, 0, 0, npes, pWrk, pSync);
printf ("%d/%d dst = %d\n", me, npes, dst);
shmem_finalize ();
return 0;
}
开发者ID:kseager,项目名称:openshmem-examples,代码行数:26,代码来源:reduce-or.c
示例17: main
int
main (int argc, char **argv)
{
int dest;
int src;
int me, npes;
shmem_init ();
me = shmem_my_pe ();
npes = shmem_n_pes ();
src = 42;
shmem_barrier_all ();
if (me == 0) {
shmem_int_put (&dest, &src, 1, 1);
}
shmem_barrier_all ();
shmem_finalize ();
return 0;
}
开发者ID:openshmem-org,项目名称:osa-testcodes,代码行数:26,代码来源:badput.c
示例18: main
int main(const int argc, char ** argv)
{
shmem_init();
#ifdef EXTRA_STATS
_timer_t total_time;
if(shmem_my_pe() == 0) {
printf("\n-----\nmkdir timedrun fake\n\n");
timer_start(&total_time);
}
#endif
init_shmem_sync_array(pSync);
char * log_file = parse_params(argc, argv);
int err = bucket_sort();
log_times(log_file);
#ifdef EXTRA_STATS
if(shmem_my_pe() == 0) {
just_timer_stop(&total_time);
double tTime = ( total_time.stop.tv_sec - total_time.start.tv_sec ) + ( total_time.stop.tv_nsec - total_time.start.tv_nsec )/1E9;
avg_time *= 1000;
avg_time_all2all *= 1000;
printf("\n============================ MMTk Statistics Totals ============================\n");
if(NUM_ITERATIONS == 1) { //TODO: fix time calculation below for more number of iterations
printf("time.mu\tt.ATA_KEYS\tt.MAKE_INPUT\tt.COUNT_BUCKET_SIZES\tt.BUCKETIZE\tt.COMPUTE_OFFSETS\tt.LOCAL_SORT\tBARRIER_AT_START\tBARRIER_AT_EXCHANGE\tBARRIER_AT_END\tnWorkers\tnPEs\n");
double TIMES[TIMER_NTIMERS];
memset(TIMES, 0x00, sizeof(double) * TIMER_NTIMERS);
for(int i=0; i<NUM_PES; i++) {
for(int t = 0; t < TIMER_NTIMERS; ++t){
if(timers[t].all_times != NULL){
TIMES[t] += timers[t].all_times[i];
}
}
}
for(int t = 0; t < TIMER_NTIMERS; ++t){
printf("%.3f\t", (TIMES[t]/NUM_PES)*1000);
}
printf("1\t%d\n",NUM_PES);
printf("Total time: %.3f\n",(TIMES[0]/NUM_PES)*1000);
}
else {
printf("time.mu\ttimeAll2All\tnWorkers\tnPEs\n");
printf("%.3f\t%.3f\t1\t%d\n",avg_time,avg_time_all2all,NUM_PES);
printf("Total time: %.3f\n",avg_time);
}
printf("------------------------------ End MMTk Statistics -----------------------------\n");
printf("===== TEST PASSED in %.3f msec =====\n",(tTime*1000));
}
#endif
shmem_finalize();
return err;
}
开发者ID:openshmem-org,项目名称:openshmem-async,代码行数:58,代码来源:isx.c
示例19: main
int main(int argc, char *argv[]){
int i,next_pivot, pivot;
for (i=0; i < SHMEM_BCAST_SYNC_SIZE; i++) {
pSync[i] = _SHMEM_SYNC_VALUE;
}
start_pes(0);
me = shmem_my_pe();
npes = shmem_n_pes();
shmem_barrier_all();
srand (me+time(NULL));
N = atoi(argv[1]);
//int *nelems = (int*) shmalloc(sizeof(int));
//int *nelems_import= (int*) shmalloc(sizeof(int));;
printf("%d: Size = %d with np=%d\n",me,N,npes);
A = (int *)shmalloc((N/npes)*sizeof(int));
temp_arr = (int *)shmalloc((2*N/npes)*sizeof(int));
if(A==NULL){
printf("\nOut of memory");
return 1;
}
n= N/npes;
i=0;
while(i<N/npes){
A[i] = rand()%(10000-0);
i++;
}
printf("\nprocess %d elements:",me);
for(i=0;i<(N/npes);i++){
printf("%d, ", A[i]);
}
pivot = quicksort(A, 0, n-1);
printf("Process %d the pivot:%d",me, pivot);
shmem_barrier_all(); //just for the sake of clear display...can be removed in the end
printf("\nThe sorted list is of process %d: ",me);
for(i=0;i<N/npes;i++){
printf("%d, ",A[i]);
}
printf("\n");
hyperquick(A,N/npes,npes);
printf("\n");
shfree(temp_arr);
shfree(A);
shmem_finalize();
}
开发者ID:rutayanp,项目名称:sorting,代码行数:58,代码来源:quick_test.c
示例20: main
int main(int argc, char **argv)
{
int i,j;
long modj,oldj,oldxmodj;
int my_pe,n_pes;
size_t max_elements,max_elements_bytes;
static long *x;
shmem_init();
my_pe = shmem_my_pe();
n_pes = shmem_n_pes();
#ifdef HAVE_SET_CACHE_INV
shmem_set_cache_inv();
#endif
/* fail if trying to use only one processor */
if ( n_pes <= 1 ){
fprintf(stderr, "FAIL - test requires at least two PEs\n");
exit(1);
}
if(my_pe == 0)
fprintf(stderr, "shmem_long_finc(%s) n_pes=%d\n", argv[0],n_pes);
/* shmalloc x on all pes (only use the one on PE 0) */
max_elements_bytes = (size_t) (sizeof(long) * n_pes);
x = shmem_malloc( max_elements_bytes );
for(i=0; i<n_pes; i++)
x[i] = 0;
count = 0;
shmem_barrier_all();
for(i=0; i<ITER; i++) {
if (my_pe != 0) {
oldj = shmem_long_finc(&count, 0); /* get index oldj from PE 0 */
modj = (oldj % (n_pes-1)); /* PE 0 is just the counter/checker */
/* increment value in x[modj] */
oldxmodj = shmem_long_finc(&x[modj], 0);
/* printf("PE=%d,oldj=%ld,modj=%ld,oldxmodj=%ld\n",my_pe,oldj,modj,oldxmodj); */
}
}
shmem_barrier_all();
if (my_pe == 0) { /* check x[j] array on PE 0 */
for(j=1 ; j<n_pes; j++) {
if (x[j-1] != ITER)
fprintf(stderr, "FAIL PE %d of %d: x[%d] = %ld expected = %ld\n",
my_pe, n_pes, j-1, x[j-1], ITER);
}
}
shmem_barrier_all();
#ifdef NEEDS_FINALIZE
shmem_finalize();
#endif
return 0;
}
开发者ID:naveen-rn,项目名称:tests-cray,代码行数:58,代码来源:shmem_long_finc_only.c
注:本文中的shmem_finalize函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论