📄 vec_master.c
字号:
#include "p4.h"#include "sr_user.h" #define MAX_VECLEN 10000int msg[MAX_VECLEN];main(argc,argv)int argc;char **argv;{ int nslaves; int type, size, id, from; int my_id; char *incoming; int done; int i, veclen, count; int starttime, endtime; p4_usc_time_t start_ustime, end_ustime, rollover; p4_initenv(&argc,argv); p4_create_procgroup(); nslaves = p4_num_total_ids() - 1; printf("number of slaves = %d\n",nslaves); my_id = p4_get_my_id(); rollover = p4_usrollover(); printf("rollover=%d\n",rollover); done = FALSE; while (!done) { printf("vector length: "); scanf("%d",&veclen); if (veclen > MAX_VECLEN) { printf("too big; using %d\n",MAX_VECLEN); veclen = MAX_VECLEN; } for (i=0; i<veclen; i++) msg[i] = i; printf("times around loop (or 0 for end): "); scanf("%d",&count); if (count == 0) done = TRUE; else { starttime = p4_clock(); start_ustime = p4_ustimer(); while (count > 0) { p4_sendx(DATA, 1, msg, veclen*sizeof(int), P4INT); type = -1; from = -1; incoming = NULL; p4_recv(&type, &from, &incoming, &size); compare_vec(msg,incoming,veclen); p4_msg_free(incoming); count--; } end_ustime = p4_ustimer(); endtime = p4_clock(); printf("time %d milliseconds\n",endtime-starttime); printf("time %d microseconds\n",end_ustime-start_ustime); } } p4_send(END, 1, msg, 0); type = -1; from = -1; incoming = NULL; p4_recv(&type, &from, &incoming, &size); p4_msg_free(incoming); p4_wait_for_end(); printf("master exiting normally\n");}compare_vec(a,b,len)int a[], b[];int len;{ int i; for (i=0; i < len; i++) { if (a[i] != b[i]) printf("a[%d] = %d, b[%d] = %d\n",i,a[i],i,b[i]); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -