static void testBasic(void) { lpel_config_t cfg; int i; lpel_task_t *trelay, *tcons, *intask; memset(&cfg, 0, sizeof(lpel_config_t)); cfg.num_workers = 2; cfg.proc_workers = 2; cfg.proc_others = 0; cfg.flags = 0; LpelInit(&cfg); LpelStart(&cfg); /* create streams */ sinp = LpelStreamCreate(0); for (i=0; i<NUM_COLL; i++) { scoll[i] = LpelStreamCreate(0); } /* create tasks */ trelay = LpelTaskCreate( 0, Relay, NULL, 8192); LpelTaskStart(trelay); tcons = LpelTaskCreate( 1, Consumer, NULL, 8192); LpelTaskStart(tcons); intask = LpelTaskCreate( -1, Inputter, sinp, 8192); LpelTaskStart(intask); LpelCleanup(); }
lpel_stream_t *PipeElement(lpel_stream_t *in, int depth) { lpel_stream_t *out; channels_t *ch; lpel_task_t *t; int wid = depth % 2; mon_task_t *mt; out = LpelStreamCreate(0); ch = ChannelsCreate( in, out, depth); t = LpelTaskCreate( 0, Relay, ch, 8192); //mt = LpelMonTaskCreate(LpelTaskGetId(t), NULL); //LpelTaskMonitor(t, mt); LpelTaskStart(t); printf("Created Relay %d\n", depth ); return (depth > 0) ? PipeElement( out, depth-1) : out; }
static void testBasic(void) { lpel_stream_t *in, *out; lpel_config_t cfg; lpel_task_t *intask, *outtask; mon_task_t *mt; cfg.num_workers = 2; cfg.proc_workers = 2; cfg.proc_others = 0; cfg.flags = 0; cfg.type = HRC_LPEL; unsigned long flags = 1 << 7 - 1; flags=0; // LpelMonInit(&cfg.mon, flags); LpelInit(&cfg); if (SccGetNodeID()==0){ in = LpelStreamCreate(0); out = PipeElement(in, 4); outtask = LpelTaskCreate( -1, Outputter, out, 8192); // mt = LpelMonTaskCreate( LpelTaskGetId(outtask), "outtask"); // LpelTaskMonitor(outtask, mt); LpelTaskStart(outtask); printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! outtask started !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); intask = LpelTaskCreate( -1, Inputter, in, 8192); // mt = LpelMonTaskCreate( LpelTaskGetId(intask), "intask"); // LpelTaskMonitor(intask, mt); LpelTaskStart(intask); printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! intask started !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); } LpelStart(); LpelCleanup(); LpelMonCleanup(); }
snet_stream_t *SNetStreamCreate(int cap) { return (snet_stream_t *) LpelStreamCreate(cap); }