11
# include "UniformTaskCollectionSplit.h"
13
# include "UniformTaskCollectionShared.h"
15
# error one of SPLIT_QUEUE or SHARED_QUEUE must be defined
19
using namespace tascel;
28
TskDscr(int _v): v(_v) {}
31
void fn(UniformTaskCollection *coll, void *desc, int dscr_len, void *pldata,
32
int pldata_len, std::vector<void*> data_bufs) {
33
TskDscr *dsc = (TskDscr*)desc;
34
printf("%d: val=%d\n", me, dsc->v);
36
TskDscr dsc2(dsc->v-1);
37
coll->addTask(&dsc2, sizeof(dsc2));
44
TslFunc tf = frt.add(fn);
46
props.functions(tf,frt).taskSize(sizeof(TskDscr)).maxTasks(MAX_TASKS);
49
printf("SplitQueue version\n");
51
UniformTaskCollectionSplit utc(props);
54
printf("SharedQueue version\n");
56
UniformTaskCollectionShared utc(props);
60
utc.addTask(&dsc, sizeof(dsc));
66
int main(int argc, char *argv[]) {
67
MPI_Init(&argc, &argv);
68
MPI_Comm_rank(MPI_COMM_WORLD, &me);