BEGIN_MPI_FEATURES
P2P!basic: @{p2pfeature}@
P2P!nonblocking: @{ip2pfeature}@
- P2P!persistent: @{persfeature}0@
+ P2P!persistent: @{persfeature}@
COLL!basic: Lacking
COLL!nonblocking: Lacking
COLL!persistent: Lacking
@{init1}@
@{init2}@
+
if (rank == 0) {
@{operation1}@ /* MBIERROR1 */
@{fini1}@
@{fini2}@
}
+ @{free1}@
+ @{free2}@
+
MPI_Finalize();
printf("Rank %d finished normally\\n", rank);
return 0;
patterns['p2pfeature'] = 'Yes' if p in gen.send + gen.bsend + gen.ssend + gen.recv else 'Lacking'
patterns['ip2pfeature'] = 'Yes' if p in gen.isend + gen.irecv else 'Lacking'
patterns['persfeature'] = 'Lacking'
- #patterns['persfeature'] = 'Yes' if p in psend + precv else 'Lacking'
+ # patterns['persfeature'] = 'Yes' if p in gen.psend + gen.precv else 'Lacking'
patterns['p'] = p
patterns['init1'] = gen.init[p]("1")
patterns['init2'] = '' #gen.init[p2]("2")
patterns['fini1'] = gen.fini[p]("1")
patterns['fini2'] = '' #gen.fini[p2]("2")
+ patterns['free1'] = gen.free[p]("1")
+ patterns['free2'] = '' #gen.free[p]("2")
patterns['operation1'] = gen.operation[p]("1")
patterns['operation2'] = '' #gen.operation[p2]("2")
patterns['change_cond'] = 'rank == 1'
replace['errormsg'] = 'P2P mismatch. @{p}@ at @{filename}@:@{line:MBIERROR1}@ and @{p}@ at @{filename}@:@{line:MBIERROR2}@ are not matched.'
replace['operation2'] = gen.operation[p]("1")
replace['fini2'] = gen.fini[p]("1")
+ #replace['free2'] = gen.free[p]("2")
gen.make_file(template, f'CallOrdering_{p}_{p}_nok.c', replace)
for s in gen.send + gen.isend + gen.ssend + gen.bsend:
patterns['generatedby'] = f'DO NOT EDIT: this file was generated by {os.path.basename(sys.argv[0])}. DO NOT EDIT.'
patterns['p2pfeature'] = 'Yes' if s in gen.send or r in gen.recv else 'Lacking'
patterns['ip2pfeature'] = 'Yes' if s in gen.isend or r in gen.irecv else 'Lacking'
+ patterns['persfeature'] = 'Lacking'
patterns['s'] = s
patterns['r'] = r
patterns['init1'] = gen.init[s]("1")
patterns['init2'] = gen.init[r]("2")
patterns['fini1'] = gen.fini[s]("1")
patterns['fini2'] = gen.fini[r]("2")
+ patterns['free1'] = gen.free[s]("1")
+ patterns['free2'] = gen.free[r]("2")
patterns['operation1'] = gen.operation[s]("1")
patterns['operation2'] = gen.operation[r]("2")
patterns['change_cond'] = '(rank == 1) && (its_raining)'