probe = ['MPI_Probe']
# RMA
-epoch = ['MPI_Win_fence', 'MPI_Win_lock', 'MPI_Win_lock_all']
rma = ['MPI_Get', 'MPI_Put']
get = ['MPI_Get']
put = ['MPI_Put']
free['MPI_Gather'] = lambda n: ""
write['MPI_Gather'] = lambda n: ""
-init['MPI_Scatter'] = lambda n: f"int val{n}, buf{n}[buff_size];"
+init['MPI_Scatter'] = lambda n: f"int val{n}, buf{n}[buff_size];\n memset(buf{n}, 0, sizeof(int)*buff_size);"
start['MPI_Scatter'] = lambda n: ""
operation['MPI_Scatter'] = lambda n: f"MPI_Scatter(&buf{n}, 1, type, &val{n}, 1, type, root, newcom);"
fini['MPI_Scatter'] = lambda n: ""
epoch['MPI_Win_lock_all'] = lambda n: 'MPI_Win_lock_all(0,win);'
finEpoch['MPI_Win_lock_all'] = lambda n: 'MPI_Win_unlock_all(win);'
-init['MPI_Put'] = lambda n: f'int localbuf{n}[N] = {{12345}};'
+init['MPI_Put'] = lambda n: f'int localbuf{n}[N] = {{0}};\n localbuf{n}[0] = 12345;'
operation['MPI_Put'] = lambda n: f'MPI_Put(&localbuf{n}, N, MPI_INT, target, 0, N, type, win);'
-init['MPI_Get'] = lambda n: f'int localbuf{n}[N] = {{54321}};'
+init['MPI_Get'] = lambda n: f'int localbuf{n}[N] = {{0}};\n localbuf{n}[0] = 54321;'
operation['MPI_Get'] = lambda n: f'MPI_Get(&localbuf{n}, N, MPI_INT, target, 0, N, type, win);'
init['store'] = lambda n: f'int localbuf{n}[N] = {{0}};'