├── BiCNN ├── DivideConstant.lua ├── Normalize.lua ├── bicnn.lua ├── binary_mapLabel2AnswerIdx ├── binary_mapWordIdx2Vector ├── binary_mapWordIdx2WordStr ├── binary_mapWordStr2WordIdx ├── binary_testDataSet1 ├── binary_testDataSet2 ├── binary_trainDataSet ├── binary_validDataSet ├── hostfiles ├── init.lua ├── initmodel ├── optim-adadelta-single.lua ├── optim-adadelta.lua ├── optim-adagrad-single.lua ├── optim-adagrad.lua ├── optim-adam-single.lua ├── optim-adam.lua ├── optim-adamax-single.lua ├── optim-adamax.lua ├── optim-downpour.lua ├── optim-eamsgd.lua ├── optim-msgd.lua ├── optim-rmsprop-single.lua ├── optim-rmsprop.lua ├── pclient.lua ├── plaunch.lua ├── prepareData.lua ├── pserver.lua ├── ptest2.lua └── utils.lua ├── CMakeLists.txt ├── LICENSE ├── README.md ├── asyncsgd ├── claunch.lua ├── dropout.lua ├── glaunch.lua ├── goot.lua ├── init.lua ├── mlaunch.lua ├── optim-downpour.lua ├── optim-eamsgd.lua ├── optim-msgd.lua ├── pclient.lua ├── pserver.lua ├── ptest.lua └── testreduceall.lua ├── init.lua ├── lua-mpi.h ├── mpiT.c ├── mpifuncs.c ├── mpit-mvapich-1.rockspec ├── mpit-openmpi-1.rockspec ├── queue.lua ├── readspec.py ├── specs ├── abort.json ├── accumulate.json ├── add_error_class.json ├── add_error_code.json ├── add_error_string.json ├── allgather.json ├── allgatherv.json ├── alloc_mem.json ├── allreduce.json ├── alltoall.json ├── alltoallv.json ├── alltoallw.json ├── barrier.json ├── bcast.json ├── bsend.json ├── bsend_init.json ├── buffer_attach.json ├── buffer_detach.json ├── cancel.json ├── cart_coords.json ├── cart_create.json ├── cart_get.json ├── cart_map.json ├── cart_rank.json ├── cart_shift.json ├── cart_sub.json ├── cartdim_get.json ├── close_port.json ├── comm_accept.json ├── comm_call_errhandler.json ├── comm_compare.json ├── comm_connect.json ├── comm_create.json ├── comm_create_errhandler.json ├── comm_create_keyval.json ├── comm_delete_attr.json ├── comm_disconnect.json ├── comm_dup.json ├── comm_free.json ├── comm_free_keyval.json ├── comm_get_attr.json ├── comm_get_errhandler.json ├── comm_get_name.json ├── comm_get_parent.json ├── comm_group.json ├── comm_join.json ├── comm_rank.json ├── comm_remote_group.json ├── comm_remote_size.json ├── comm_set_attr.json ├── comm_set_errhandler.json ├── comm_set_name.json ├── comm_size.json ├── comm_spawn.json ├── comm_spawn_multiple.json ├── comm_split.json ├── comm_test_inter.json ├── dims_create.json ├── errhandler_free.json ├── error_class.json ├── error_string.json ├── exscan.json ├── file_call_errhandler.json ├── file_close.json ├── file_create_errhandler.json ├── file_delete.json ├── file_get_amode.json ├── file_get_atomicity.json ├── file_get_byte_offset.json ├── file_get_errhandler.json ├── file_get_group.json ├── file_get_info.json ├── file_get_position.json ├── file_get_position_shared.json ├── file_get_size.json ├── file_get_type_extent.json ├── file_get_view.json ├── file_iread.json ├── file_iread_at.json ├── file_iread_shared.json ├── file_iwrite.json ├── file_iwrite_at.json ├── file_iwrite_shared.json ├── file_open.json ├── file_preallocate.json ├── file_read.json ├── file_read_all.json ├── file_read_all_begin.json ├── file_read_all_end.json ├── file_read_at.json ├── file_read_at_all.json ├── file_read_at_all_begin.json ├── file_read_at_all_end.json ├── file_read_ordered.json ├── file_read_ordered_begin.json ├── file_read_ordered_end.json ├── file_read_shared.json ├── file_seek.json ├── file_seek_shared.json ├── file_set_atomicity.json ├── file_set_errhandler.json ├── file_set_info.json ├── file_set_size.json ├── file_set_view.json ├── file_sync.json ├── file_write.json ├── file_write_all.json ├── file_write_all_begin.json ├── file_write_all_end.json ├── file_write_at.json ├── file_write_at_all.json ├── file_write_at_all_begin.json ├── file_write_at_all_end.json ├── file_write_ordered.json ├── file_write_ordered_begin.json ├── file_write_ordered_end.json ├── file_write_shared.json ├── finalize.json ├── finalized.json ├── free_mem.json ├── gather.json ├── gatherv.json ├── get.json ├── get_address.json ├── get_count.json ├── get_elements.json ├── get_processor_name.json ├── get_version.json ├── graph_create.json ├── graph_get.json ├── graph_map.json ├── graph_neighbors.json ├── graph_neighbors_count.json ├── graphdims_get.json ├── grequest_complete.json ├── grequest_start.json ├── group_compare.json ├── group_difference.json ├── group_excl.json ├── group_free.json ├── group_incl.json ├── group_intersection.json ├── group_range_excl.json ├── group_range_incl.json ├── group_rank.json ├── group_size.json ├── group_translate_ranks.json ├── group_union.json ├── iallreduce.json ├── ibsend.json ├── info_create.json ├── info_delete.json ├── info_dup.json ├── info_free.json ├── info_get.json ├── info_get_nkeys.json ├── info_get_nthkey.json ├── info_get_valuelen.json ├── info_set.json ├── init.json ├── init_thread.json ├── initialized.json ├── intercomm_create.json ├── intercomm_merge.json ├── iprobe.json ├── irecv.json ├── irsend.json ├── is_thread_main.json ├── isend.json ├── issend.json ├── lookup_name.json ├── op_commutative.json ├── op_create.json ├── op_free.json ├── open_port.json ├── pack.json ├── pack_external.json ├── pack_external_size.json ├── pack_size.json ├── pcontrol.json ├── probe.json ├── publish_name.json ├── put.json ├── query_thread.json ├── recv.json ├── recv_init.json ├── reduce.json ├── reduce_local.json ├── reduce_scatter.json ├── register_datarep.json ├── request_free.json ├── request_get_status.json ├── rsend.json ├── rsend_init.json ├── scan.json ├── scatter.json ├── scatterv.json ├── send.json ├── send_init.json ├── sendrecv.json ├── sendrecv_replace.json ├── ssend.json ├── ssend_init.json ├── start.json ├── startall.json ├── status_set_cancelled.json ├── status_set_elements.json ├── test.json ├── test_cancelled.json ├── testall.json ├── testany.json ├── testsome.json ├── topo_test.json ├── type_commit.json ├── type_contiguous.json ├── type_create_darray.json ├── type_create_hindexed.json ├── type_create_hvector.json ├── type_create_indexed_block.json ├── type_create_keyval.json ├── type_create_resized.json ├── type_create_struct.json ├── type_create_subarray.json ├── type_delete_attr.json ├── type_dup.json ├── type_free.json ├── type_free_keyval.json ├── type_get_attr.json ├── type_get_contents.json ├── type_get_envelope.json ├── type_get_extent.json ├── type_get_name.json ├── type_get_true_extent.json ├── type_indexed.json ├── type_match_size.json ├── type_set_attr.json ├── type_set_name.json ├── type_size.json ├── type_vector.json ├── unpack.json ├── unpack_external.json ├── unpublish_name.json ├── wait.json ├── waitall.json ├── waitany.json ├── waitsome.json ├── win_call_errhandler.json ├── win_complete.json ├── win_create.json ├── win_create_errhandler.json ├── win_create_keyval.json ├── win_delete_attr.json ├── win_fence.json ├── win_free.json ├── win_free_keyval.json ├── win_get_attr.json ├── win_get_errhandler.json ├── win_get_group.json ├── win_get_name.json ├── win_lock.json ├── win_post.json ├── win_set_attr.json ├── win_set_errhandler.json ├── win_set_name.json ├── win_start.json ├── win_test.json ├── win_unlock.json ├── win_wait.json ├── wtick.json └── wtime.json ├── test.lua └── test ├── testireduceall.lua └── testreduceall.lua /BiCNN/DivideConstant.lua: -------------------------------------------------------------------------------- 1 | -- Layer for metric 2 | -- Author: Minwei Feng (mfeng@us.ibm.com) 3 | 4 | local DivideConstant, parent = torch.class('nn.DivideConstant', 'nn.Module') 5 | 6 | function DivideConstant:__init(constant_scalar) 7 | parent.__init(self) 8 | assert(type(constant_scalar) == 'number', 'input is not scalar!') 9 | self.constant_scalar = constant_scalar 10 | self.numerator = constant_scalar 11 | end 12 | 13 | function DivideConstant:updateOutput(input) 14 | self.output = self.output or input.new() 15 | self.output:resizeAs(input):fill(self.numerator) 16 | self.output:cdiv(input) 17 | return self.output 18 | end 19 | 20 | function DivideConstant:updateGradInput(input, gradOutput) 21 | self.gradInput = self.gradInput or input.new() 22 | self.gradInput:resizeAs(input) 23 | self.gradInput:copy(gradOutput):cdiv(input):cdiv(input):mul(-self.numerator) 24 | return self.gradInput 25 | end 26 | -------------------------------------------------------------------------------- /BiCNN/binary_mapLabel2AnswerIdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_mapLabel2AnswerIdx -------------------------------------------------------------------------------- /BiCNN/binary_mapWordIdx2Vector: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_mapWordIdx2Vector -------------------------------------------------------------------------------- /BiCNN/binary_mapWordIdx2WordStr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_mapWordIdx2WordStr -------------------------------------------------------------------------------- /BiCNN/binary_mapWordStr2WordIdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_mapWordStr2WordIdx -------------------------------------------------------------------------------- /BiCNN/binary_testDataSet1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_testDataSet1 -------------------------------------------------------------------------------- /BiCNN/binary_testDataSet2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_testDataSet2 -------------------------------------------------------------------------------- /BiCNN/binary_trainDataSet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_trainDataSet -------------------------------------------------------------------------------- /BiCNN/binary_validDataSet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/binary_validDataSet -------------------------------------------------------------------------------- /BiCNN/hostfiles: -------------------------------------------------------------------------------- 1 | bluejgpu1:16 2 | bluejgpu2:16 3 | bluejgpu3:16 4 | bluejgpu4:16 5 | bluejgpu5:16 6 | bluejgpu6:16 7 | -------------------------------------------------------------------------------- /BiCNN/init.lua: -------------------------------------------------------------------------------- 1 | ------ parameter server and client ------ 2 | require 'mpiT' 3 | mpiT.tag_ps_recv_init = 1 4 | mpiT.tag_ps_recv_grad = 2 5 | mpiT.tag_ps_send_param = 3 6 | mpiT.tag_ps_recv_param = 4 7 | mpiT.tag_ps_recv_header = 5 8 | mpiT.tag_ps_recv_stop = 6 9 | mpiT.tag_ps_recv_param_tail = 7 10 | mpiT.tag_ps_recv_grad_tail = 8 11 | 12 | dofile('pserver.lua') 13 | dofile('pclient.lua') 14 | 15 | dofile('optim-msgd.lua') 16 | dofile('optim-downpour.lua') 17 | dofile('optim-eamsgd.lua') 18 | dofile('optim-rmsprop.lua') 19 | dofile('optim-rmsprop-single.lua') 20 | dofile('optim-adam.lua') 21 | dofile('optim-adam-single.lua') 22 | dofile('optim-adamax.lua') 23 | dofile('optim-adamax-single.lua') 24 | dofile('optim-adagrad.lua') 25 | dofile('optim-adagrad-single.lua') 26 | dofile('optim-adadelta.lua') 27 | dofile('optim-adadelta-single.lua') 28 | require 'nn' 29 | if nn.Normalize == nil then 30 | dofile('Normalize.lua') 31 | end 32 | -------------------------------------------------------------------------------- /BiCNN/initmodel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sixin-zh/mpiT/c35966635fc1436da04d4378502c05297fb6e1ee/BiCNN/initmodel -------------------------------------------------------------------------------- /BiCNN/optim-adadelta-single.lua: -------------------------------------------------------------------------------- 1 | -- ADADELTA 2 | -- For single worker only 3 | -- Author: Minwei Feng (mfeng@us.ibm.com) 4 | require 'optim' 5 | 6 | function optim.adadeltasingle(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | local rho = config.rho or 0.9 10 | local epsilon = config.epsilon or 1e-6 11 | local pc = config.pclient or nil 12 | local lr = config.lr 13 | state.pversion = state.pversion or 0 14 | 15 | local fx,dfdx = opfunc(w) 16 | 17 | if not state.paramVariance then 18 | state.paramVariance = torch.Tensor():typeAs(w):resizeAs(dfdx):zero() 19 | state.paramStd = torch.Tensor():typeAs(w):resizeAs(dfdx):zero() 20 | state.delta = torch.Tensor():typeAs(w):resizeAs(dfdx):zero() 21 | state.accDelta = torch.Tensor():typeAs(w):resizeAs(dfdx):zero() 22 | end 23 | state.paramVariance:mul(rho):addcmul(1-rho,dfdx,dfdx) 24 | state.paramStd:resizeAs(state.paramVariance):copy(state.paramVariance):add(epsilon):sqrt() 25 | state.delta:resizeAs(state.paramVariance):copy(state.accDelta):add(epsilon):sqrt():cdiv(state.paramStd):cmul(dfdx) 26 | w:add(-lr, state.delta) 27 | state.accDelta:mul(rho):addcmul(1-rho, state.delta, state.delta) 28 | 29 | 30 | state.pversion = state.pversion + 1 31 | -- send 32 | pc:async_send_param() 33 | pc:wait() 34 | return w,{fx} 35 | end 36 | -------------------------------------------------------------------------------- /BiCNN/optim-adadelta.lua: -------------------------------------------------------------------------------- 1 | -- Adadelta 2 | -- Author: Minwei Feng (mfeng@us.ibm.com) 3 | require 'optim' 4 | 5 | function optim.adadelta(opfunc, w, config, state) 6 | local config = config or {} 7 | local state = state or config 8 | local rho = config.rho or 0.9 9 | local epsilon = config.epsilon or 1e-6 10 | local mode = config.mode or 'global' -- global or local 11 | local pc = config.pclient or nil 12 | local su = config.su or 0 -- sync updates (grad and param) 13 | 14 | state.pversion = state.pversion or 0 15 | state.dusync = state.dusync or 0 16 | 17 | local fx,dfdx = opfunc(w) 18 | 19 | if pc and su>1 then 20 | -- accumulate grad 21 | if not config.accumulated then -- need one copy to accumulate 22 | config.accumulated = torch.Tensor():typeAs(dfdx):resizeAs(dfdx):fill(0) 23 | pc:reset(w,config.accumulated) 24 | end 25 | 26 | if mode == 'global' then 27 | config.accumulated:add(dfdx) 28 | if state.pversion%su==0 then 29 | pc:async_send_grad() 30 | pc:async_recv_param() 31 | local synctime = sys.clock() 32 | pc:wait() 33 | state.dusync = state.dusync + sys.clock()-synctime 34 | config.accumulated:fill(0) 35 | else 36 | --do nothing here 37 | end 38 | end 39 | elseif pc and su==1 then 40 | if mode == 'global' then 41 | pc:async_send_grad() 42 | pc:async_recv_param() 43 | local synctime = sys.clock() 44 | pc:wait() 45 | state.dusync = state.dusync + sys.clock()-synctime 46 | end 47 | else 48 | assert(false) 49 | end 50 | state.pversion = state.pversion + 1 51 | return w,{fx} 52 | end 53 | -------------------------------------------------------------------------------- /BiCNN/optim-adagrad-single.lua: -------------------------------------------------------------------------------- 1 | -- Adagrad 2 | -- single worker only 3 | -- Author: Minwei Feng (mfeng@us.ibm.com) 4 | require 'optim' 5 | 6 | function optim.adagradsingle(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | 10 | local lr = config.lr or 0 11 | local lrd = config.lrd or 0 12 | local pc = config.pclient or nil 13 | local epsilon = config.epsilon 14 | state.pversion = state.pversion or 0 15 | 16 | local clr = lr / (1 + state.pversion*lrd) 17 | 18 | local fx,dfdx = opfunc(w) 19 | 20 | if not state.paramVariance then 21 | state.paramVariance = torch.Tensor():typeAs(w):resizeAs(dfdx):zero() 22 | state.paramStd = torch.Tensor():typeAs(w):resizeAs(dfdx) 23 | end 24 | state.paramVariance:addcmul(1,dfdx,dfdx) 25 | state.paramStd:resizeAs(state.paramVariance):copy(state.paramVariance):sqrt() 26 | w:addcdiv(-clr, dfdx, state.paramStd:add(epsilon)) 27 | 28 | state.pversion = state.pversion + 1 29 | -- send 30 | pc:async_send_param() 31 | pc:wait() 32 | return w,{fx} 33 | end 34 | -------------------------------------------------------------------------------- /BiCNN/optim-adagrad.lua: -------------------------------------------------------------------------------- 1 | -- Adagrad 2 | -- Author: Minwei Feng (mfeng@us.ibm.com) 3 | require 'optim' 4 | 5 | function optim.adagrad(opfunc, w, config, state) 6 | local config = config or {} 7 | local state = state or config 8 | 9 | local lr = config.lr or 0 10 | local lrd = config.lrd or 0 11 | local pc = config.pclient or nil 12 | local epsilon = config.epsilon 13 | state.pversion = state.pversion or 0 14 | 15 | local clr = lr / (1 + state.pversion*lrd) 16 | 17 | local mode = config.mode or 'global' -- global or local 18 | 19 | local pc = config.pclient or nil 20 | local su = config.su or 0 -- sync updates (grad and param) 21 | 22 | state.pversion = state.pversion or 0 23 | state.dusync = state.dusync or 0 24 | 25 | local fx,dfdx = opfunc(w) 26 | 27 | if pc and su>1 then 28 | -- accumulate grad 29 | if not config.accumulated then -- need one copy to accumulate 30 | config.accumulated = torch.Tensor():typeAs(dfdx):resizeAs(dfdx):fill(0) 31 | pc:reset(w,config.accumulated) 32 | end 33 | 34 | if mode == 'global' then 35 | config.accumulated:add(dfdx) 36 | if state.pversion%su==0 then 37 | pc:async_send_grad() 38 | pc:async_recv_param() 39 | local synctime = sys.clock() 40 | pc:wait() 41 | state.dusync = state.dusync + sys.clock()-synctime 42 | config.accumulated:fill(0) 43 | else 44 | --do nothing here 45 | end 46 | end 47 | elseif pc and su==1 then 48 | if mode == 'global' then 49 | pc:async_send_grad() 50 | pc:async_recv_param() 51 | local synctime = sys.clock() 52 | pc:wait() 53 | state.dusync = state.dusync + sys.clock()-synctime 54 | end 55 | else 56 | assert(false) 57 | end 58 | state.pversion = state.pversion + 1 59 | return w,{fx} 60 | end 61 | -------------------------------------------------------------------------------- /BiCNN/optim-adam-single.lua: -------------------------------------------------------------------------------- 1 | -- Adam 2 | -- only for single worker 3 | -- Author: Minwei Feng (mfeng@us.ibm.com) 4 | require 'optim' 5 | 6 | function optim.adamsingle(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | local lr = config.lr 10 | local beta1 = config.beta1 11 | local beta2 = config.beta2 12 | local epsilon = config.epsilon 13 | local pc = config.pclient or nil 14 | state.pversion = state.pversion or 0 15 | 16 | local fx,dfdx = opfunc(w) 17 | 18 | state.adam_t = state.adam_t or 0 19 | state.adam_m = state.adam_m or torch.Tensor():resizeAs(dfdx):zero() 20 | state.adam_v = state.adam_v or torch.Tensor():resizeAs(dfdx):zero() 21 | state.adam_d = state.adam_d or torch.Tensor():resizeAs(dfdx):zero() 22 | 23 | 24 | state.adam_t = state.adam_t + 1 25 | state.adam_m:mul(beta1):add(1-beta1, dfdx) 26 | state.adam_v:mul(beta2):addcmul(1-beta2, dfdx, dfdx) 27 | state.adam_d:copy(state.adam_v):sqrt():add(epsilon) 28 | local beta1_t = 1 - math.pow(beta1, state.adam_t ) 29 | local beta2_t = 1 - math.pow(beta2, state.adam_t ) 30 | local lr_t = lr * math.sqrt(beta2_t)/beta1_t 31 | w:addcdiv(-lr_t, state.adam_m, state.adam_d) 32 | 33 | state.pversion = state.pversion + 1 34 | -- send 35 | pc:async_send_param() 36 | pc:wait() 37 | return w,{fx} 38 | end 39 | -------------------------------------------------------------------------------- /BiCNN/optim-adam.lua: -------------------------------------------------------------------------------- 1 | -- Adam 2 | -- Author: Minwei Feng (mfeng@us.ibm.com) 3 | require 'optim' 4 | 5 | function optim.adam(opfunc, w, config, state) 6 | 7 | local config = config or {} 8 | local state = state or config 9 | local lr = config.lr 10 | local beta1 = config.beta1 11 | local beta2 = config.beta2 12 | local epsilon = config.epsilon 13 | local mode = config.mode or 'global' -- global or local 14 | 15 | local pc = config.pclient or nil 16 | local su = config.su or 0 -- sync updates (grad and param) 17 | 18 | state.pversion = state.pversion or 0 19 | state.dusync = state.dusync or 0 20 | 21 | local fx,dfdx = opfunc(w) 22 | 23 | if pc and su>1 then 24 | 25 | -- accumulate grad 26 | if not config.accumulated then -- need one copy to accumulate 27 | config.accumulated = torch.Tensor():typeAs(dfdx):resizeAs(dfdx):fill(0) 28 | pc:reset(w,config.accumulated) 29 | end 30 | 31 | if mode == 'global' then 32 | config.accumulated:add(dfdx) 33 | if state.pversion%su==0 then 34 | pc:async_send_grad() 35 | pc:async_recv_param() 36 | local synctime = sys.clock() 37 | pc:wait() 38 | state.dusync = state.dusync + sys.clock()-synctime 39 | config.accumulated:fill(0) 40 | else 41 | --do nothing here 42 | end 43 | end 44 | elseif pc and su==1 then 45 | if mode == 'global' then 46 | pc:async_send_grad() 47 | pc:async_recv_param() 48 | local synctime = sys.clock() 49 | pc:wait() 50 | state.dusync = state.dusync + sys.clock()-synctime 51 | end 52 | else 53 | assert(false) 54 | end 55 | state.pversion = state.pversion + 1 56 | return w,{fx} 57 | end 58 | -------------------------------------------------------------------------------- /BiCNN/optim-adamax-single.lua: -------------------------------------------------------------------------------- 1 | -- Adamax 2 | -- only for single worker 3 | -- Author: Minwei Feng (mfeng@us.ibm.com) 4 | require 'optim' 5 | 6 | function optim.adamaxsingle(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | local lr = config.lr 10 | local beta1 = config.beta1 11 | local beta2 = config.beta2 12 | local epsilon = config.epsilon 13 | local pc = config.pclient or nil 14 | state.pversion = state.pversion or 0 15 | 16 | 17 | local fx,dfdx = opfunc(w) 18 | state.adamax_t = state.adamax_t or 0 19 | state.adamax_m = state.adamax_m or torch.Tensor():resizeAs(dfdx):zero() 20 | state.adamax_u = state.adamax_u or torch.Tensor():resizeAs(dfdx):zero() 21 | state.adamax_max = state.adamax_max or w.new(2, unpack(dfdx:size():totable())):zero() 22 | 23 | state.adamax_t = state.adamax_t + 1 24 | state.adamax_m:mul(beta1):add(1-beta1, dfdx) 25 | state.adamax_max[1]:copy(state.adamax_u):mul(beta2) 26 | state.adamax_max[2]:copy(dfdx):abs():add(epsilon) 27 | state.adamax_u:max(state.adamax_max, 1) 28 | 29 | local beta1_t = 1 - math.pow(beta1, state.adamax_t ) 30 | local lr_t = lr /beta1_t 31 | w:addcdiv(-lr_t, state.adamax_m, state.adamax_u) 32 | 33 | state.pversion = state.pversion + 1 34 | -- send 35 | pc:async_send_param() 36 | pc:wait() 37 | return w,{fx} 38 | end 39 | -------------------------------------------------------------------------------- /BiCNN/optim-adamax.lua: -------------------------------------------------------------------------------- 1 | -- Adamax 2 | -- Author: Minwei Feng (mfeng@us.ibm.com) 3 | require 'optim' 4 | 5 | function optim.adamax(opfunc, w, config, state) 6 | local config = config or {} 7 | local state = state or config 8 | local lr = config.lr 9 | local beta1 = config.beta1 10 | local beta2 = config.beta2 11 | local epsilon = config.epsilon 12 | local mode = config.mode or 'global' -- global or local 13 | local pc = config.pclient or nil 14 | local su = config.su or 0 -- sync updates (grad and param) 15 | 16 | state.pversion = state.pversion or 0 17 | state.dusync = state.dusync or 0 18 | 19 | local fx,dfdx = opfunc(w) 20 | 21 | if pc and su>1 then 22 | -- accumulate grad 23 | if not config.accumulated then -- need one copy to accumulate 24 | config.accumulated = torch.Tensor():typeAs(dfdx):resizeAs(dfdx):fill(0) 25 | pc:reset(w,config.accumulated) 26 | end 27 | 28 | if mode == 'global' then 29 | config.accumulated:add(dfdx) 30 | if state.pversion%su==0 then 31 | pc:async_send_grad() 32 | pc:async_recv_param() 33 | local synctime = sys.clock() 34 | pc:wait() 35 | state.dusync = state.dusync + sys.clock()-synctime 36 | config.accumulated:fill(0) 37 | else 38 | --do nothing here 39 | end 40 | end 41 | elseif pc and su==1 then 42 | if mode == 'global' then 43 | pc:async_send_grad() 44 | pc:async_recv_param() 45 | local synctime = sys.clock() 46 | pc:wait() 47 | state.dusync = state.dusync + sys.clock()-synctime 48 | end 49 | else 50 | assert(false) 51 | end 52 | state.pversion = state.pversion + 1 53 | return w,{fx} 54 | end 55 | -------------------------------------------------------------------------------- /BiCNN/optim-downpour.lua: -------------------------------------------------------------------------------- 1 | -- DOWNPOUR 2 | -- Author: Sixin Zhang (zsx@cims.nyu.edu) 3 | -- when su==1, it is the asyncsgd/hogwild 4 | require 'optim' 5 | 6 | function optim.downpour(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | 10 | local lr = config.lr or 0 -- learning rate 11 | local lrd = config.lrd or 0 -- learning rate decay 12 | local l2wd = config.l2wd or 0 13 | 14 | local pc = config.pclient or nil 15 | local su = config.su or 0 -- sync updates (grad and param) 16 | 17 | state.pversion = state.pversion or 0 18 | state.dusync = state.dusync or 0 19 | 20 | if lrd ~= 0 then 21 | lr = lr / (1 + state.pversion*lrd) 22 | end 23 | local fx,dfdx = opfunc(w) 24 | if l2wd ~= 0 then dfdx:add(l2wd, w) end 25 | 26 | if pc and su>1 then 27 | -- apply lr 28 | dfdx:mul(-lr) 29 | -- accumulate grad 30 | if not config.dfdx then -- need one copy to accumulate 31 | config.dfdx = torch.Tensor():typeAs(dfdx):resizeAs(dfdx):fill(0) 32 | pc:reset(w,config.dfdx) 33 | end 34 | config.dfdx:add(dfdx) 35 | -- send grads and get new param 36 | if state.pversion%su==0 then 37 | pc:async_send_grad() 38 | pc:async_recv_param() 39 | local synctime = sys.clock() 40 | pc:wait() 41 | state.dusync = state.dusync + sys.clock()-synctime 42 | config.dfdx:fill(0) 43 | else 44 | w:add(dfdx) -- move locally 45 | end 46 | elseif pc and su==1 then 47 | -- apply lr 48 | dfdx:mul(-lr) 49 | -- send 50 | pc:async_send_grad() 51 | pc:async_recv_param() 52 | local synctime = sys.clock() 53 | pc:wait() 54 | state.dusync = state.dusync + sys.clock()-synctime 55 | else 56 | assert(false) 57 | end 58 | state.pversion = state.pversion + 1 59 | return w,{fx} 60 | end 61 | -------------------------------------------------------------------------------- /BiCNN/optim-msgd.lua: -------------------------------------------------------------------------------- 1 | -- MSGD 2 | -- Nesterov's momentum, see e.g. Sutskever et al., ICML 2013 3 | -- Author: Sixin Zhang (zsx@cims.nyu.edu) 4 | require 'optim' 5 | 6 | function optim.msgd(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | 10 | local lr = config.lr or 0 11 | local lrd = config.lrd or 0 12 | local lrp = config.lrp or 0 13 | local mom = config.mom or 0 14 | local mmax = config.mommax or 1 15 | local mlrd = config.momdecay or 0 16 | local l2wd = config.l2wd or 0 17 | 18 | local pc = config.pclient or nil 19 | state.pversion = state.pversion or 0 20 | 21 | 22 | if lrd ~= 0 then 23 | lr = lr / (1 + state.pversion*lrd) 24 | end 25 | if mom > 0 then 26 | if mlrd > 0 then 27 | mom = math.min(mmax, 1-0.5/(1+state.pversion/mlrd)) 28 | end 29 | if not state.vt then 30 | state.vt = w:clone():zero() 31 | end 32 | state.vt:mul(mom) 33 | w:add(state.vt) 34 | end 35 | local fx,dfdx = opfunc(w) 36 | if l2wd ~= 0 then dfdx:add(l2wd,w) end 37 | local clr = lr 38 | if lrd > 0 and lrp > 0 then 39 | clr = lr / math.pow(1+state.pversion*lrd,lrp) 40 | end 41 | w:add(-clr,dfdx) 42 | if mom > 0 then 43 | state.vt:add(-clr,dfdx) 44 | end 45 | state.pversion = state.pversion + 1 46 | -- send 47 | pc:async_send_param() 48 | pc:wait() 49 | return w,{fx} 50 | end 51 | -------------------------------------------------------------------------------- /BiCNN/optim-rmsprop-single.lua: -------------------------------------------------------------------------------- 1 | -- RMSProp 2 | -- single worker only 3 | -- Author: Minwei Feng (mfeng@us.ibm.com) 4 | require 'optim' 5 | 6 | function optim.rmspropsingle(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | local decay = config.decay 10 | local lr = config.lr 11 | local momentum = config.momentum 12 | local epsilon = config.epsilon 13 | 14 | local pc = config.pclient or nil 15 | state.pversion = state.pversion or 0 16 | 17 | state.gradAccum = state.gradAccum or torch.Tensor():resizeAs(w):fill(0) 18 | state.gradSqAccum = state.gradSqAccum or torch.Tensor():resizeAs(w):fill(0) 19 | state.update = state.update or torch.Tensor():resizeAs(w):fill(0) 20 | state.gradRms = state.gradRms or torch.Tensor():resizeAs(w):fill(0) 21 | 22 | local fx,dfdx = opfunc(w) 23 | 24 | state.gradAccum:mul(decay):add(1 - decay, dfdx) 25 | state.gradSqAccum:mul(decay):add(1 - decay, torch.cmul(dfdx, dfdx)) 26 | state.gradRms:copy(state.gradSqAccum) 27 | :add(-1, torch.cmul(state.gradAccum, state.gradAccum)) 28 | :add(epsilon):sqrt() 29 | state.update:mul(momentum):add(-lr, torch.cdiv(dfdx, state.gradRms)) 30 | 31 | 32 | w:add(state.update) 33 | 34 | state.pversion = state.pversion + 1 35 | -- send 36 | pc:async_send_param() 37 | pc:wait() 38 | return w,{fx} 39 | end 40 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR) 2 | CMAKE_POLICY(VERSION 2.6) 3 | 4 | FIND_PACKAGE(Torch REQUIRED) 5 | #FIND_PACKAGE(IBVERBS) 6 | 7 | message ("MPI ROOT is ${MPI_ROOT}") 8 | 9 | IF (APPLE) 10 | message ("APPLE") 11 | FILE(GLOB LMPI ${MPI_ROOT}/lib/*.dylib) 12 | ELSE() 13 | IF(${OPENMPI}) 14 | message ("LINK openmpi") 15 | SET(LMPI "${MPI_ROOT}/lib/liboshmem.so") 16 | FILE(GLOB LMCA "${MPI_ROOT}/lib/openmpi/*.so") 17 | ELSE() 18 | FILE(GLOB LMPI ${MPI_ROOT}/lib/*.so) 19 | ENDIF() 20 | ENDIF() 21 | 22 | message ("LMPI is ${LMPI}") 23 | message ("LMCA is ${LMCA}") 24 | 25 | SET(src mpiT.c) 26 | SET(luasrc init.lua queue.lua) 27 | 28 | ADD_TORCH_PACKAGE(mpiT "${src}" "${luasrc}" "MPI Torch") 29 | TARGET_LINK_LIBRARIES(mpiT luaT TH ${LMPI} ${LMCA}) 30 | -------------------------------------------------------------------------------- /asyncsgd/claunch.lua: -------------------------------------------------------------------------------- 1 | -- cpu launch 2 | -- Author: Sixin Zhang (zsx@cims.nyu.edu) 3 | -- luajit claunch.lua 4 | dofile('init.lua') 5 | 6 | opt = {} 7 | opt.gpuid = -1 8 | torch.setdefaulttensortype('torch.FloatTensor') 9 | 10 | opt.name = 'sgd' 11 | opt.lr = 1e-1 12 | opt.mom = 0.99 13 | 14 | dofile('goot.lua') 15 | -------------------------------------------------------------------------------- /asyncsgd/dropout.lua: -------------------------------------------------------------------------------- 1 | require 'nn' 2 | 3 | local Dropout, Parent = torch.class('nn.Dropout', 'nn.Module') 4 | 5 | function Dropout:__init(p) 6 | Parent.__init(self) 7 | self.p = p or 0.5 8 | if self.p >= 1 or self.p < 0 then 9 | error(' illegal percentage, must be 0 <= p < 1') 10 | end 11 | self.noise = torch.Tensor() 12 | end 13 | 14 | function Dropout:updateOutput(input) 15 | self.output:resizeAs(input):copy(input) 16 | if self.p == 0 then return self.output end 17 | self.noise:resizeAs(input) 18 | self.noise:bernoulli(1-self.p) 19 | self.output:cmul(self.noise) 20 | self.output:div(1-self.p) 21 | return self.output 22 | end 23 | 24 | function Dropout:updateGradInput(input, gradOutput) 25 | self.gradInput:resizeAs(gradOutput):copy(gradOutput) 26 | self.gradInput:cmul(self.noise) -- simply mask the gradients with the noise vector 27 | self.gradInput:div(1-self.p) 28 | return self.gradInput 29 | end -------------------------------------------------------------------------------- /asyncsgd/glaunch.lua: -------------------------------------------------------------------------------- 1 | -- gpu launch 2 | -- Author: Sixin Zhang (zsx@cims.nyu.edu) 3 | -- luajit glaunch.lua 4 | 5 | dofile('init.lua') 6 | 7 | opt = {} 8 | opt.gpuid = 1 9 | 10 | require 'cunn' 11 | torch.setdefaulttensortype('torch.CudaTensor') 12 | print('[client] use gpu', opt.gpuid) 13 | cutorch.setDevice(opt.gpuid) 14 | 15 | opt.name = 'sgd' 16 | opt.lr = 1e-1 17 | opt.mom = 0.99 18 | 19 | dofile('goot.lua') 20 | -------------------------------------------------------------------------------- /asyncsgd/init.lua: -------------------------------------------------------------------------------- 1 | ------ parameter server and client ------ 2 | require 'mpiT' 3 | mpiT.tag_ps_recv_init = 1 4 | mpiT.tag_ps_recv_grad = 2 5 | mpiT.tag_ps_send_param = 3 6 | mpiT.tag_ps_recv_param = 4 7 | mpiT.tag_ps_recv_header = 5 8 | mpiT.tag_ps_recv_stop = 6 9 | mpiT.tag_ps_recv_param_tail = 7 10 | mpiT.tag_ps_recv_grad_tail = 8 11 | 12 | dofile('pserver.lua') 13 | dofile('pclient.lua') 14 | 15 | dofile('optim-msgd.lua') 16 | dofile('optim-downpour.lua') 17 | dofile('optim-eamsgd.lua') 18 | -------------------------------------------------------------------------------- /asyncsgd/mlaunch.lua: -------------------------------------------------------------------------------- 1 | -- mpi launch 2 | -- Author: Sixin Zhang (zsx@cims.nyu.edu) 3 | -- mpirun -n 12 luajit mlaunch.lua 4 | local oncuda = false 5 | local ffi = require("ffi") 6 | ffi.load("libmpi",true) 7 | local AGPU = nil 8 | if oncuda then 9 | require 'cutorch' 10 | AGPU = {1,2,3,4,5,6} -- use the first 6 gpus on each machine 11 | end 12 | 13 | dofile('init.lua') 14 | mpiT.Init() 15 | 16 | local world = mpiT.COMM_WORLD 17 | local rank = mpiT.get_rank(world) 18 | local size = mpiT.get_size(world) 19 | local gpuid = -1 20 | 21 | local conf = {} 22 | conf.rank = rank 23 | conf.world = world 24 | conf.sranks = {} 25 | conf.cranks = {} 26 | for i = 0,size-1 do 27 | if math.fmod(i,2)==0 then 28 | table.insert(conf.sranks,i) 29 | else 30 | table.insert(conf.cranks,i) 31 | end 32 | end 33 | 34 | opt = {} 35 | opt.name = 'downpour' 36 | opt.lr = 1e-4 37 | opt.su = 1 38 | --[[ 39 | opt.name = 'eamsgd' 40 | opt.lr = 1e-1 41 | opt.su = 100 42 | opt.mva = 0.9/6 -- this is \beta/p when p=6 43 | 44 | opt.lr = 1e-2 45 | opt.mom = 0.99 46 | --]] 47 | opt.maxepoch = 10000 48 | 49 | if math.fmod(rank,2)==0 then 50 | -- server 51 | print('[server] rank',rank,'use cpu') 52 | torch.setdefaulttensortype('torch.FloatTensor') 53 | local ps = pServer(conf) 54 | ps:start() 55 | else 56 | if AGPU then 57 | require 'cunn' 58 | local gpus = cutorch.getDeviceCount() 59 | gpuid = AGPU[(rank%(size/2)) % gpus + 1] 60 | cutorch.setDevice(gpuid) 61 | print('[client] rank ' .. rank .. ' use gpu ' .. gpuid) 62 | torch.setdefaulttensortype('torch.CudaTensor') 63 | else 64 | print('[client] rank ' .. rank .. ' use cpu') 65 | torch.setdefaulttensortype('torch.FloatTensor') 66 | end 67 | -- setup 68 | opt.gpuid = gpuid 69 | opt.pc = pClient(conf) 70 | opt.rank = rank 71 | -- go 72 | dofile('goot.lua') 73 | end 74 | 75 | mpiT.Finalize() 76 | -------------------------------------------------------------------------------- /asyncsgd/optim-downpour.lua: -------------------------------------------------------------------------------- 1 | -- DOWNPOUR 2 | -- Author: Sixin Zhang (zsx@cims.nyu.edu) 3 | -- when su==1, it is the asyncsgd/hogwild 4 | require 'optim' 5 | 6 | function optim.downpour(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | 10 | local lr = config.lr or 0 -- learning rate 11 | local lrd = config.lrd or 0 -- learning rate decay 12 | local l2wd = config.l2wd or 0 13 | 14 | local pc = config.pclient or nil 15 | local su = config.su or 0 -- sync updates (grad and param) 16 | 17 | state.pversion = state.pversion or 0 18 | state.dusync = state.dusync or 0 19 | 20 | if lrd ~= 0 then 21 | lr = lr / (1 + state.pversion*lrd) 22 | end 23 | local fx,dfdx = opfunc(w) 24 | if l2wd ~= 0 then dfdx:add(l2wd, w) end 25 | 26 | if pc and su>1 then 27 | -- apply lr 28 | dfdx:mul(-lr) 29 | -- accumulate grad 30 | if not config.dfdx then -- need one copy to accumulate 31 | config.dfdx = torch.Tensor():typeAs(dfdx):resizeAs(dfdx):fill(0) 32 | pc:reset(w,config.dfdx) 33 | end 34 | config.dfdx:add(dfdx) 35 | -- send grads and get new param 36 | if state.pversion%su==0 then 37 | pc:async_send_grad() 38 | pc:async_recv_param() 39 | local synctime = sys.clock() 40 | pc:wait() 41 | state.dusync = state.dusync + sys.clock()-synctime 42 | config.dfdx:fill(0) 43 | else 44 | w:add(dfdx) -- move locally 45 | end 46 | elseif pc and su==1 then 47 | -- apply lr 48 | dfdx:mul(-lr) 49 | -- send 50 | pc:async_send_grad() 51 | pc:async_recv_param() 52 | local synctime = sys.clock() 53 | pc:wait() 54 | state.dusync = state.dusync + sys.clock()-synctime 55 | else 56 | assert(false) 57 | end 58 | state.pversion = state.pversion + 1 59 | return w,{fx} 60 | end 61 | -------------------------------------------------------------------------------- /asyncsgd/optim-msgd.lua: -------------------------------------------------------------------------------- 1 | -- MSGD 2 | -- Nesterov's momentum, see e.g. Sutskever et al., ICML 2013 3 | -- Author: Sixin Zhang (zsx@cims.nyu.edu) 4 | require 'optim' 5 | 6 | function optim.msgd(opfunc, w, config, state) 7 | local config = config or {} 8 | local state = state or config 9 | 10 | local lr = config.lr or 0 11 | local lrd = config.lrd or 0 12 | local lrp = config.lrp or 0 13 | local mom = config.mom or 0 14 | local mmax = config.mommax or 1 15 | local mlrd = config.momdecay or 0 16 | local l2wd = config.l2wd or 0 17 | 18 | state.pversion = state.pversion or 0 19 | 20 | if mom > 0 then 21 | if mlrd > 0 then 22 | mom = math.min(mmax, 1-0.5/(1+state.pversion/mlrd)) 23 | end 24 | if not state.vt then 25 | state.vt = w:clone():zero() 26 | end 27 | state.vt:mul(mom) 28 | w:add(state.vt) 29 | end 30 | local fx,dfdx = opfunc(w) 31 | if l2wd ~= 0 then dfdx:add(l2wd,w) end 32 | local clr = lr 33 | if lrd > 0 and lrp > 0 then 34 | clr = lr / math.pow(1+state.pversion*lrd,lrp) 35 | end 36 | w:add(-clr,dfdx) 37 | if mom > 0 then 38 | state.vt:add(-clr,dfdx) 39 | end 40 | state.pversion = state.pversion + 1 41 | return w,{fx} 42 | end 43 | -------------------------------------------------------------------------------- /asyncsgd/ptest.lua: -------------------------------------------------------------------------------- 1 | -- mpirun -n 2 luajit ptest.lua 2 | 3 | local ssize = 10*4096*4096 4 | local usecuda = false 5 | local ffi = require("ffi") 6 | ffi.load("libmpi",true) 7 | require 'mpiT' 8 | dofile('init.lua') 9 | mpiT.Init() 10 | local world = mpiT.COMM_WORLD 11 | local rank = mpiT.get_rank(world) 12 | local size = mpiT.get_size(world) 13 | 14 | assert((size>0) and (size%2==0)) 15 | 16 | local conf = {} 17 | conf.rank = rank 18 | conf.world = world 19 | conf.sranks = {} 20 | conf.cranks = {} 21 | for i = 0,size-1 do 22 | if i < size/2 then 23 | table.insert(conf.sranks,i) --as server 24 | else 25 | table.insert(conf.cranks,i) --as client 26 | end 27 | end 28 | 29 | if rank < size/2 then 30 | print('rank ' .. rank .. ' is server.') 31 | -- require 'cutorch' -- in case usecuda==true and your mpirun does not stop, try uncomment this out. 32 | torch.setdefaulttensortype('torch.FloatTensor') 33 | print(rank,'use cpu') 34 | -- server 35 | local ps = pServer(conf) 36 | ps:start() 37 | else 38 | print('rank ' .. rank .. ' is client.') 39 | 40 | -- use gpu? 41 | if usecuda then 42 | require 'cutorch' 43 | torch.setdefaulttensortype('torch.CudaTensor') 44 | local gpus = cutorch.getDeviceCount() 45 | local gpu =(rank%(size/2)) % gpus + 1 46 | cutorch.setDevice(gpu) 47 | print(rank,'use gpu',gpu) 48 | else 49 | torch.setdefaulttensortype('torch.FloatTensor') 50 | print(rank,'use cpu') 51 | end 52 | 53 | -- client 54 | local theta = torch.Tensor(ssize) 55 | local grad = torch.Tensor(ssize) 56 | local pc = pClient(conf) 57 | pc:start(theta,grad) 58 | 59 | local begin = os.time() 60 | local T = 100 61 | for t=1,T do 62 | print('t=' .. t .. ':rank' .. rank .. 'pingpong') 63 | pc:async_recv_param() 64 | pc:async_send_grad() 65 | pc:wait() 66 | end 67 | local now = os.time() 68 | print('rank ' .. rank .. ' bandwidth(bi-direction) is ' .. (2*T*ssize*4/(now-begin)/1024/1024) .. ' MBytes/sec') 69 | pc:stop() 70 | print('pc stopped') 71 | end 72 | 73 | mpiT.Finalize() 74 | -------------------------------------------------------------------------------- /mpiT.c: -------------------------------------------------------------------------------- 1 | // Licensed under the Apache License, Version 2.0 (the "License"); 2 | // you may not use this file except in compliance with the License. 3 | // You may obtain a copy of the License at 4 | // 5 | // http://www.apache.org/licenses/LICENSE-2.0 6 | // 7 | // Unless required by applicable law or agreed to in writing, software 8 | // distributed under the License is distributed on an "AS IS" BASIS, 9 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | // See the License for the specific language governing permissions and 11 | // limitations under the License. 12 | 13 | // MPI for Torch 14 | // adapted from lua-mpi: https://github.com/jzrake/lua-mpi 15 | // Author: Sixin Zhang (zsx@cims.nyu.edu) 16 | 17 | #include 18 | #include 19 | 20 | DLL_EXPORT int luaopen_libmpiT(lua_State *L) { 21 | luaopen_mpi(L); 22 | return 1; 23 | } 24 | -------------------------------------------------------------------------------- /mpit-mvapich-1.rockspec: -------------------------------------------------------------------------------- 1 | package = "mpiT" 2 | version = "mvapich-1" 3 | source = { 4 | url = "https://github.com/sixin-zh/mpiT", 5 | tag = "master" 6 | } 7 | description = { 8 | summary = "MPI for Torch", 9 | } 10 | dependencies = { 11 | "torch >= 7.0", 12 | "sys >= 1.0", 13 | } 14 | build = { 15 | type = "command", 16 | build_command = [[ 17 | cmake -E make_directory build && cd build && cmake .. \ 18 | -DCMAKE_C_COMPILER=${MPI_PREFIX}/bin/mpicc -DCMAKE_CXX_COMPILER=${MPI_PREFIX}/bin/mpicxx \ 19 | -DMPI_ROOT=${MPI_PREFIX} \ 20 | -DOPENMPI=0 \ 21 | -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(LUA_BINDIR)/.." -DCMAKE_INSTALL_PREFIX="$(PREFIX)" && $(MAKE) 22 | ]], 23 | install_command = "cd build && $(MAKE) install" 24 | } -------------------------------------------------------------------------------- /mpit-openmpi-1.rockspec: -------------------------------------------------------------------------------- 1 | package = "mpiT" 2 | version = "openmpi-1" 3 | source = { 4 | url = "https://github.com/sixin-zh/mpiT", 5 | tag = "master" 6 | } 7 | description = { 8 | summary = "MPI for Torch", 9 | } 10 | dependencies = { 11 | "torch >= 7.0", 12 | "sys >= 1.0", 13 | } 14 | build = { 15 | type = "command", 16 | build_command = [[ 17 | cmake -E make_directory build && cd build && cmake .. \ 18 | -DCMAKE_C_COMPILER=${MPI_PREFIX}/bin/mpicc -DCMAKE_CXX_COMPILER=${MPI_PREFIX}/bin/mpicxx \ 19 | -DMPI_ROOT=${MPI_PREFIX} \ 20 | -DOPENMPI=1 \ 21 | -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(LUA_BINDIR)/.." -DCMAKE_INSTALL_PREFIX="$(PREFIX)" && $(MAKE) 22 | ]], 23 | install_command = "cd build && $(MAKE) install" 24 | } 25 | -------------------------------------------------------------------------------- /queue.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/sharpobject/panel-attack/blob/master/queue.lua 2 | 3 | local Queue = torch.class('Queue') 4 | 5 | function Queue:__init() 6 | self.first = 0 7 | self.last = -1 8 | self.q = {} 9 | end 10 | 11 | function Queue:push(value) 12 | local last = self.last + 1 13 | self.last = last 14 | self.q[last] = value 15 | end 16 | 17 | function Queue:empty() 18 | return self.first > self.last 19 | end 20 | 21 | function Queue:pop() 22 | if self:empty() then 23 | return nil 24 | end 25 | local first = self.first 26 | local ret = self.q[first] 27 | self.q[first] = nil 28 | if self.first == self.last then 29 | self.first = 0 30 | self.last = -1 31 | else 32 | self.first = first + 1 33 | end 34 | return ret 35 | end 36 | 37 | function Queue:len() 38 | return self.last - self.first + 1 39 | end 40 | 41 | function Queue:clear() 42 | for i=self.first,self.last do 43 | self.q[i] = nil 44 | end 45 | self.first = 0 46 | self.last = -1 47 | end -------------------------------------------------------------------------------- /specs/abort.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "errorcode" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Abort" 15 | } 16 | -------------------------------------------------------------------------------- /specs/accumulate.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "origin_addr" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "origin_count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "origin_datatype" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "target_rank" 19 | }, 20 | { 21 | "type": "MPI_Aint", 22 | "name": "target_disp" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "target_count" 27 | }, 28 | { 29 | "type": "MPI_Datatype", 30 | "name": "target_datatype" 31 | }, 32 | { 33 | "type": "MPI_Op", 34 | "name": "op" 35 | }, 36 | { 37 | "type": "MPI_Win", 38 | "name": "win" 39 | } 40 | ], 41 | "retVal": "int", 42 | "name": "MPI_Accumulate" 43 | } 44 | -------------------------------------------------------------------------------- /specs/add_error_class.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "errorclass" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Add_error_class" 11 | } 12 | -------------------------------------------------------------------------------- /specs/add_error_code.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "errorclass" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "errorcode" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Add_error_code" 15 | } 16 | -------------------------------------------------------------------------------- /specs/add_error_string.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "errorcode" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "string" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Add_error_string" 15 | } 16 | -------------------------------------------------------------------------------- /specs/allgather.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "sendcount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "sendtype" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "recvbuf" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "recvcount" 23 | }, 24 | { 25 | "type": "MPI_Datatype", 26 | "name": "recvtype" 27 | }, 28 | { 29 | "type": "MPI_Comm", 30 | "name": "comm" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Allgather" 35 | } 36 | -------------------------------------------------------------------------------- /specs/allgatherv.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "sendcount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "sendtype" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "recvbuf" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "recvcounts" 23 | }, 24 | { 25 | "type": "int*", 26 | "name": "displs" 27 | }, 28 | { 29 | "type": "MPI_Datatype", 30 | "name": "recvtype" 31 | }, 32 | { 33 | "type": "MPI_Comm", 34 | "name": "comm" 35 | } 36 | ], 37 | "retVal": "int", 38 | "name": "MPI_Allgatherv" 39 | } 40 | -------------------------------------------------------------------------------- /specs/alloc_mem.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Aint", 6 | "name": "size" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "baseptr" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Alloc_mem" 19 | } 20 | -------------------------------------------------------------------------------- /specs/allreduce.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "recvbuf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Op", 22 | "name": "op" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Allreduce" 31 | } 32 | -------------------------------------------------------------------------------- /specs/alltoall.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "sendcount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "sendtype" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "recvbuf" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "recvcount" 23 | }, 24 | { 25 | "type": "MPI_Datatype", 26 | "name": "recvtype" 27 | }, 28 | { 29 | "type": "MPI_Comm", 30 | "name": "comm" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Alltoall" 35 | } 36 | -------------------------------------------------------------------------------- /specs/alltoallv.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "sendcounts" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "sdispls" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "sendtype" 19 | }, 20 | { 21 | "type": "void*", 22 | "name": "recvbuf" 23 | }, 24 | { 25 | "type": "int*", 26 | "name": "recvcounts" 27 | }, 28 | { 29 | "type": "int*", 30 | "name": "rdispls" 31 | }, 32 | { 33 | "type": "MPI_Datatype", 34 | "name": "recvtype" 35 | }, 36 | { 37 | "type": "MPI_Comm", 38 | "name": "comm" 39 | } 40 | ], 41 | "retVal": "int", 42 | "name": "MPI_Alltoallv" 43 | } 44 | -------------------------------------------------------------------------------- /specs/alltoallw.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "sendcounts" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "sdispls" 15 | }, 16 | { 17 | "type": "MPI_Datatype*", 18 | "name": "sendtypes" 19 | }, 20 | { 21 | "type": "void*", 22 | "name": "recvbuf" 23 | }, 24 | { 25 | "type": "int*", 26 | "name": "recvcounts" 27 | }, 28 | { 29 | "type": "int*", 30 | "name": "rdispls" 31 | }, 32 | { 33 | "type": "MPI_Datatype*", 34 | "name": "recvtypes" 35 | }, 36 | { 37 | "type": "MPI_Comm", 38 | "name": "comm" 39 | } 40 | ], 41 | "retVal": "int", 42 | "name": "MPI_Alltoallw" 43 | } 44 | -------------------------------------------------------------------------------- /specs/barrier.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Barrier" 11 | } 12 | -------------------------------------------------------------------------------- /specs/bcast.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buffer" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "datatype" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "root" 19 | }, 20 | { 21 | "type": "MPI_Comm", 22 | "name": "comm" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Bcast" 27 | } 28 | -------------------------------------------------------------------------------- /specs/bsend.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Bsend" 31 | } 32 | -------------------------------------------------------------------------------- /specs/bsend_init.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Bsend_init" 35 | } 36 | -------------------------------------------------------------------------------- /specs/buffer_attach.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buffer" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Buffer_attach" 15 | } 16 | -------------------------------------------------------------------------------- /specs/buffer_detach.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buffer" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Buffer_detach" 15 | } 16 | -------------------------------------------------------------------------------- /specs/cancel.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Request*", 6 | "name": "request" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Cancel" 11 | } 12 | -------------------------------------------------------------------------------- /specs/cart_coords.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "rank" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "maxdims" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "coords" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Cart_coords" 23 | } 24 | -------------------------------------------------------------------------------- /specs/cart_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "old_comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "ndims" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "dims" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "periods" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "reorder" 23 | }, 24 | { 25 | "type": "MPI_Comm*", 26 | "name": "comm_cart" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Cart_create" 31 | } 32 | -------------------------------------------------------------------------------- /specs/cart_get.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "maxdims" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "dims" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "periods" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "coords" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Cart_get" 27 | } 28 | -------------------------------------------------------------------------------- /specs/cart_map.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "ndims" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "dims" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "periods" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "newrank" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Cart_map" 27 | } 28 | -------------------------------------------------------------------------------- /specs/cart_rank.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "coords" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "rank" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Cart_rank" 19 | } 20 | -------------------------------------------------------------------------------- /specs/cart_shift.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "direction" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "disp" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "rank_source" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "rank_dest" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Cart_shift" 27 | } 28 | -------------------------------------------------------------------------------- /specs/cart_sub.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "remain_dims" 11 | }, 12 | { 13 | "type": "MPI_Comm*", 14 | "name": "new_comm" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Cart_sub" 19 | } 20 | -------------------------------------------------------------------------------- /specs/cartdim_get.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "ndims" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Cartdim_get" 15 | } 16 | -------------------------------------------------------------------------------- /specs/close_port.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "port_name" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Close_port" 11 | } 12 | -------------------------------------------------------------------------------- /specs/comm_accept.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "port_name" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "root" 15 | }, 16 | { 17 | "type": "MPI_Comm", 18 | "name": "comm" 19 | }, 20 | { 21 | "type": "MPI_Comm*", 22 | "name": "newcomm" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Comm_accept" 27 | } 28 | -------------------------------------------------------------------------------- /specs/comm_call_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "errorcode" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_call_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_compare.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm1" 7 | }, 8 | { 9 | "type": "MPI_Comm", 10 | "name": "comm2" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "result" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Comm_compare" 19 | } 20 | -------------------------------------------------------------------------------- /specs/comm_connect.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "port_name" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "root" 15 | }, 16 | { 17 | "type": "MPI_Comm", 18 | "name": "comm" 19 | }, 20 | { 21 | "type": "MPI_Comm*", 22 | "name": "newcomm" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Comm_connect" 27 | } 28 | -------------------------------------------------------------------------------- /specs/comm_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "MPI_Group", 10 | "name": "group" 11 | }, 12 | { 13 | "type": "MPI_Comm*", 14 | "name": "newcomm" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Comm_create" 19 | } 20 | -------------------------------------------------------------------------------- /specs/comm_create_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm_errhandler_function*", 6 | "name": "function" 7 | }, 8 | { 9 | "type": "MPI_Errhandler*", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_create_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_create_keyval.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm_copy_attr_function*", 6 | "name": "comm_copy_attr_fn" 7 | }, 8 | { 9 | "type": "MPI_Comm_delete_attr_function*", 10 | "name": "comm_delete_attr_fn" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "comm_keyval" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "extra_state" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Comm_create_keyval" 23 | } 24 | -------------------------------------------------------------------------------- /specs/comm_delete_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "comm_keyval" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_delete_attr" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_disconnect.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm*", 6 | "name": "comm" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Comm_disconnect" 11 | } 12 | -------------------------------------------------------------------------------- /specs/comm_dup.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "MPI_Comm*", 10 | "name": "newcomm" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_dup" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm*", 6 | "name": "comm" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Comm_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/comm_free_keyval.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "comm_keyval" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Comm_free_keyval" 11 | } 12 | -------------------------------------------------------------------------------- /specs/comm_get_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "comm_keyval" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "attribute_val" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "flag" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Comm_get_attr" 23 | } 24 | -------------------------------------------------------------------------------- /specs/comm_get_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "MPI_Errhandler*", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_get_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_get_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "name" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "length" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Comm_get_name" 19 | } 20 | -------------------------------------------------------------------------------- /specs/comm_get_parent.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm*", 6 | "name": "parent" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Comm_get_parent" 11 | } 12 | -------------------------------------------------------------------------------- /specs/comm_group.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "MPI_Group*", 10 | "name": "group" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_group" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_join.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "fd" 7 | }, 8 | { 9 | "type": "MPI_Comm*", 10 | "name": "intercomm" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_join" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_rank.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "rank" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_rank" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_remote_group.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "MPI_Group*", 10 | "name": "group" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_remote_group" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_remote_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_remote_size" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_set_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "comm_keyval" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "attribute_val" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Comm_set_attr" 19 | } 20 | -------------------------------------------------------------------------------- /specs/comm_set_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "MPI_Errhandler", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_set_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_set_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "name" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_set_name" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_size" 15 | } 16 | -------------------------------------------------------------------------------- /specs/comm_spawn.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "command" 7 | }, 8 | { 9 | "type": "char**", 10 | "name": "argv" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "maxprocs" 15 | }, 16 | { 17 | "type": "MPI_Info", 18 | "name": "info" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "root" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Comm*", 30 | "name": "intercomm" 31 | }, 32 | { 33 | "type": "int*", 34 | "name": "array_of_errcodes" 35 | } 36 | ], 37 | "retVal": "int", 38 | "name": "MPI_Comm_spawn" 39 | } 40 | -------------------------------------------------------------------------------- /specs/comm_spawn_multiple.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "char**", 10 | "name": "array_of_commands" 11 | }, 12 | { 13 | "type": "char***", 14 | "name": "array_of_argv" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "array_of_maxprocs" 19 | }, 20 | { 21 | "type": "MPI_Info*", 22 | "name": "array_of_info" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "root" 27 | }, 28 | { 29 | "type": "MPI_Comm", 30 | "name": "comm" 31 | }, 32 | { 33 | "type": "MPI_Comm*", 34 | "name": "intercomm" 35 | }, 36 | { 37 | "type": "int*", 38 | "name": "array_of_errcodes" 39 | } 40 | ], 41 | "retVal": "int", 42 | "name": "MPI_Comm_spawn_multiple" 43 | } 44 | -------------------------------------------------------------------------------- /specs/comm_split.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "color" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "key" 15 | }, 16 | { 17 | "type": "MPI_Comm*", 18 | "name": "newcomm" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Comm_split" 23 | } 24 | -------------------------------------------------------------------------------- /specs/comm_test_inter.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "flag" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Comm_test_inter" 15 | } 16 | -------------------------------------------------------------------------------- /specs/dims_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "nnodes" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "ndims" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "dims" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Dims_create" 19 | } 20 | -------------------------------------------------------------------------------- /specs/errhandler_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Errhandler*", 6 | "name": "errhandler" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Errhandler_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/error_class.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "errorcode" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "errorclass" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Error_class" 15 | } 16 | -------------------------------------------------------------------------------- /specs/error_string.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "errorcode" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "string" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "resultlen" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Error_string" 19 | } 20 | -------------------------------------------------------------------------------- /specs/exscan.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "recvbuf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Op", 22 | "name": "op" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Exscan" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_call_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "errorcode" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_call_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_close.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File*", 6 | "name": "fh" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_File_close" 11 | } 12 | -------------------------------------------------------------------------------- /specs/file_create_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File_errhandler_function*", 6 | "name": "function" 7 | }, 8 | { 9 | "type": "MPI_Errhandler*", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_create_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_delete.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "filename" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_delete" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_amode.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "amode" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_amode" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_atomicity.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "flag" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_atomicity" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_byte_offset.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "MPI_Offset*", 14 | "name": "disp" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_get_byte_offset" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_get_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "file" 7 | }, 8 | { 9 | "type": "MPI_Errhandler*", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_group.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Group*", 10 | "name": "group" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_group" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Info*", 10 | "name": "info_used" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_info" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_position.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset*", 10 | "name": "offset" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_position" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_position_shared.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset*", 10 | "name": "offset" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_position_shared" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset*", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_get_size" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_get_type_extent.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Datatype", 10 | "name": "datatype" 11 | }, 12 | { 13 | "type": "MPI_Aint*", 14 | "name": "extent" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_get_type_extent" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_get_view.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset*", 10 | "name": "disp" 11 | }, 12 | { 13 | "type": "MPI_Datatype*", 14 | "name": "etype" 15 | }, 16 | { 17 | "type": "MPI_Datatype*", 18 | "name": "filetype" 19 | }, 20 | { 21 | "type": "char*", 22 | "name": "datarep" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_get_view" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_iread.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Request*", 22 | "name": "request" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_iread" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_iread_at.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | }, 24 | { 25 | "type": "MPI_Request*", 26 | "name": "request" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_File_iread_at" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_iread_shared.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Request*", 22 | "name": "request" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_iread_shared" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_iwrite.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Request*", 22 | "name": "request" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_iwrite" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_iwrite_at.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | }, 24 | { 25 | "type": "MPI_Request*", 26 | "name": "request" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_File_iwrite_at" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_iwrite_shared.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Request*", 22 | "name": "request" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_iwrite_shared" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "filename" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "amode" 15 | }, 16 | { 17 | "type": "MPI_Info", 18 | "name": "info" 19 | }, 20 | { 21 | "type": "MPI_File*", 22 | "name": "fh" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_open" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_preallocate.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_preallocate" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_read.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_read" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_read_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_read_all" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_read_all_begin.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_File_read_all_begin" 23 | } 24 | -------------------------------------------------------------------------------- /specs/file_read_all_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_read_all_end" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_read_at.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | }, 24 | { 25 | "type": "MPI_Status*", 26 | "name": "status" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_File_read_at" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_read_at_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | }, 24 | { 25 | "type": "MPI_Status*", 26 | "name": "status" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_File_read_at_all" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_read_at_all_begin.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_read_at_all_begin" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_read_at_all_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_read_at_all_end" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_read_ordered.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_read_ordered" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_read_ordered_begin.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_File_read_ordered_begin" 23 | } 24 | -------------------------------------------------------------------------------- /specs/file_read_ordered_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_read_ordered_end" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_read_shared.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_read_shared" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_seek.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "whence" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_seek" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_seek_shared.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "whence" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_seek_shared" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_set_atomicity.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "flag" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_set_atomicity" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_set_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "file" 7 | }, 8 | { 9 | "type": "MPI_Errhandler", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_set_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_set_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_set_info" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_set_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_File_set_size" 15 | } 16 | -------------------------------------------------------------------------------- /specs/file_set_view.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "disp" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "etype" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "filetype" 19 | }, 20 | { 21 | "type": "char*", 22 | "name": "datarep" 23 | }, 24 | { 25 | "type": "MPI_Info", 26 | "name": "info" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_File_set_view" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_sync.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_File_sync" 11 | } 12 | -------------------------------------------------------------------------------- /specs/file_write.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_write" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_write_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_write_all" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_write_all_begin.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_File_write_all_begin" 23 | } 24 | -------------------------------------------------------------------------------- /specs/file_write_all_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_write_all_end" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_write_at.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | }, 24 | { 25 | "type": "MPI_Status*", 26 | "name": "status" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_File_write_at" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_write_at_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | }, 24 | { 25 | "type": "MPI_Status*", 26 | "name": "status" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_File_write_at_all" 31 | } 32 | -------------------------------------------------------------------------------- /specs/file_write_at_all_begin.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "MPI_Offset", 10 | "name": "offset" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "buf" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "count" 19 | }, 20 | { 21 | "type": "MPI_Datatype", 22 | "name": "datatype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_write_at_all_begin" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_write_at_all_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_write_at_all_end" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_write_ordered.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_write_ordered" 27 | } 28 | -------------------------------------------------------------------------------- /specs/file_write_ordered_begin.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_File_write_ordered_begin" 23 | } 24 | -------------------------------------------------------------------------------- /specs/file_write_ordered_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_File_write_ordered_end" 19 | } 20 | -------------------------------------------------------------------------------- /specs/file_write_shared.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_File", 6 | "name": "fh" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "buf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_File_write_shared" 27 | } 28 | -------------------------------------------------------------------------------- /specs/finalize.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [], 4 | "retVal": "int", 5 | "name": "MPI_Finalize" 6 | } 7 | -------------------------------------------------------------------------------- /specs/finalized.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "flag" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Finalized" 11 | } 12 | -------------------------------------------------------------------------------- /specs/free_mem.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "baseptr" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Free_mem" 11 | } 12 | -------------------------------------------------------------------------------- /specs/gather.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "sendcount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "sendtype" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "recvbuf" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "recvcount" 23 | }, 24 | { 25 | "type": "MPI_Datatype", 26 | "name": "recvtype" 27 | }, 28 | { 29 | "type": "int", 30 | "name": "root" 31 | }, 32 | { 33 | "type": "MPI_Comm", 34 | "name": "comm" 35 | } 36 | ], 37 | "retVal": "int", 38 | "name": "MPI_Gather" 39 | } 40 | -------------------------------------------------------------------------------- /specs/gatherv.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "sendcount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "sendtype" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "recvbuf" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "recvcounts" 23 | }, 24 | { 25 | "type": "int*", 26 | "name": "displs" 27 | }, 28 | { 29 | "type": "MPI_Datatype", 30 | "name": "recvtype" 31 | }, 32 | { 33 | "type": "int", 34 | "name": "root" 35 | }, 36 | { 37 | "type": "MPI_Comm", 38 | "name": "comm" 39 | } 40 | ], 41 | "retVal": "int", 42 | "name": "MPI_Gatherv" 43 | } 44 | -------------------------------------------------------------------------------- /specs/get.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "origin_addr" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "origin_count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "origin_datatype" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "target_rank" 19 | }, 20 | { 21 | "type": "MPI_Aint", 22 | "name": "target_disp" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "target_count" 27 | }, 28 | { 29 | "type": "MPI_Datatype", 30 | "name": "target_datatype" 31 | }, 32 | { 33 | "type": "MPI_Win", 34 | "name": "win" 35 | } 36 | ], 37 | "retVal": "int", 38 | "name": "MPI_Get" 39 | } 40 | -------------------------------------------------------------------------------- /specs/get_address.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "location" 7 | }, 8 | { 9 | "type": "MPI_Aint*", 10 | "name": "address" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Get_address" 15 | } 16 | -------------------------------------------------------------------------------- /specs/get_count.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Status*", 6 | "name": "status" 7 | }, 8 | { 9 | "type": "MPI_Datatype", 10 | "name": "datatype" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "count" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Get_count" 19 | } 20 | -------------------------------------------------------------------------------- /specs/get_elements.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Status*", 6 | "name": "status" 7 | }, 8 | { 9 | "type": "MPI_Datatype", 10 | "name": "datatype" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "count" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Get_elements" 19 | } 20 | -------------------------------------------------------------------------------- /specs/get_processor_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "name" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "resultlen" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Get_processor_name" 15 | } 16 | -------------------------------------------------------------------------------- /specs/get_version.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "version" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "subversion" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Get_version" 15 | } 16 | -------------------------------------------------------------------------------- /specs/graph_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "old_comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "nnodes" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "index" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "edges" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "reorder" 23 | }, 24 | { 25 | "type": "MPI_Comm*", 26 | "name": "comm_graph" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Graph_create" 31 | } 32 | -------------------------------------------------------------------------------- /specs/graph_get.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "maxindex" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "maxedges" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "index" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "edges" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Graph_get" 27 | } 28 | -------------------------------------------------------------------------------- /specs/graph_map.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "nnodes" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "index" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "edges" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "newrank" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Graph_map" 27 | } 28 | -------------------------------------------------------------------------------- /specs/graph_neighbors.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "rank" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "maxneighbors" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "neighbors" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Graph_neighbors" 23 | } 24 | -------------------------------------------------------------------------------- /specs/graph_neighbors_count.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "rank" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "nneighbors" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Graph_neighbors_count" 19 | } 20 | -------------------------------------------------------------------------------- /specs/graphdims_get.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "nnodes" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "nedges" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Graphdims_get" 19 | } 20 | -------------------------------------------------------------------------------- /specs/grequest_complete.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "External Interfaces C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Request", 6 | "name": "request" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Grequest_complete" 11 | } 12 | -------------------------------------------------------------------------------- /specs/grequest_start.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "External Interfaces C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Grequest_query_function*", 6 | "name": "query_fn" 7 | }, 8 | { 9 | "type": "MPI_Grequest_free_function*", 10 | "name": "free_fn" 11 | }, 12 | { 13 | "type": "MPI_Grequest_cancel_function*", 14 | "name": "cancel_fn" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "extra_state" 19 | }, 20 | { 21 | "type": "MPI_Request*", 22 | "name": "request" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Grequest_start" 27 | } 28 | -------------------------------------------------------------------------------- /specs/group_compare.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group1" 7 | }, 8 | { 9 | "type": "MPI_Group", 10 | "name": "group2" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "result" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Group_compare" 19 | } 20 | -------------------------------------------------------------------------------- /specs/group_difference.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group1" 7 | }, 8 | { 9 | "type": "MPI_Group", 10 | "name": "group2" 11 | }, 12 | { 13 | "type": "MPI_Group*", 14 | "name": "new_group" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Group_difference" 19 | } 20 | -------------------------------------------------------------------------------- /specs/group_excl.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "n" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "ranks" 15 | }, 16 | { 17 | "type": "MPI_Group*", 18 | "name": "new_group" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Group_excl" 23 | } 24 | -------------------------------------------------------------------------------- /specs/group_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group*", 6 | "name": "group" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Group_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/group_incl.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "n" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "ranks" 15 | }, 16 | { 17 | "type": "MPI_Group*", 18 | "name": "new_group" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Group_incl" 23 | } 24 | -------------------------------------------------------------------------------- /specs/group_intersection.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group1" 7 | }, 8 | { 9 | "type": "MPI_Group", 10 | "name": "group2" 11 | }, 12 | { 13 | "type": "MPI_Group*", 14 | "name": "new_group" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Group_intersection" 19 | } 20 | -------------------------------------------------------------------------------- /specs/group_range_excl.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "n_triplets" 11 | }, 12 | { 13 | "type": "int**", 14 | "name": "ranges" 15 | }, 16 | { 17 | "type": "MPI_Group*", 18 | "name": "new_group" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Group_range_excl" 23 | } 24 | -------------------------------------------------------------------------------- /specs/group_range_incl.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "n_triplets" 11 | }, 12 | { 13 | "type": "int**", 14 | "name": "ranges" 15 | }, 16 | { 17 | "type": "MPI_Group*", 18 | "name": "new_group" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Group_range_incl" 23 | } 24 | -------------------------------------------------------------------------------- /specs/group_rank.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "rank" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Group_rank" 15 | } 16 | -------------------------------------------------------------------------------- /specs/group_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Group_size" 15 | } 16 | -------------------------------------------------------------------------------- /specs/group_translate_ranks.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group1" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "n_ranks" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "ranks1" 15 | }, 16 | { 17 | "type": "MPI_Group", 18 | "name": "group2" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "ranks2" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Group_translate_ranks" 27 | } 28 | -------------------------------------------------------------------------------- /specs/group_union.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group1" 7 | }, 8 | { 9 | "type": "MPI_Group", 10 | "name": "group2" 11 | }, 12 | { 13 | "type": "MPI_Group*", 14 | "name": "new_group" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Group_union" 19 | } 20 | -------------------------------------------------------------------------------- /specs/iallreduce.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "recvbuf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Op", 22 | "name": "op" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Iallreduce" 35 | } 36 | -------------------------------------------------------------------------------- /specs/ibsend.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Ibsend" 35 | } 36 | -------------------------------------------------------------------------------- /specs/info_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info*", 6 | "name": "info" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Info_create" 11 | } 12 | -------------------------------------------------------------------------------- /specs/info_delete.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "key" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Info_delete" 15 | } 16 | -------------------------------------------------------------------------------- /specs/info_dup.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "MPI_Info*", 10 | "name": "newinfo" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Info_dup" 15 | } 16 | -------------------------------------------------------------------------------- /specs/info_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info*", 6 | "name": "info" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Info_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/info_get.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "key" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "valuelen" 15 | }, 16 | { 17 | "type": "char*", 18 | "name": "value" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "flag" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Info_get" 27 | } 28 | -------------------------------------------------------------------------------- /specs/info_get_nkeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "nkeys" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Info_get_nkeys" 15 | } 16 | -------------------------------------------------------------------------------- /specs/info_get_nthkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "n" 11 | }, 12 | { 13 | "type": "char*", 14 | "name": "key" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Info_get_nthkey" 19 | } 20 | -------------------------------------------------------------------------------- /specs/info_get_valuelen.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "key" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "valuelen" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "flag" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Info_get_valuelen" 23 | } 24 | -------------------------------------------------------------------------------- /specs/info_set.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "The Info Object C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "key" 11 | }, 12 | { 13 | "type": "char*", 14 | "name": "value" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Info_set" 19 | } 20 | -------------------------------------------------------------------------------- /specs/init.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "argc" 7 | }, 8 | { 9 | "type": "char***", 10 | "name": "argv" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Init" 15 | } 16 | -------------------------------------------------------------------------------- /specs/init_thread.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "External Interfaces C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "argc" 7 | }, 8 | { 9 | "type": "char***", 10 | "name": "argv" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "required" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "provided" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Init_thread" 23 | } 24 | -------------------------------------------------------------------------------- /specs/initialized.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "flag" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Initialized" 11 | } 12 | -------------------------------------------------------------------------------- /specs/intercomm_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "local_comm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "local_leader" 11 | }, 12 | { 13 | "type": "MPI_Comm", 14 | "name": "bridge_comm" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "remote_leader" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm*", 26 | "name": "newintercomm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Intercomm_create" 31 | } 32 | -------------------------------------------------------------------------------- /specs/intercomm_merge.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "intercomm" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "high" 11 | }, 12 | { 13 | "type": "MPI_Comm*", 14 | "name": "newcomm" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Intercomm_merge" 19 | } 20 | -------------------------------------------------------------------------------- /specs/iprobe.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "source" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "tag" 11 | }, 12 | { 13 | "type": "MPI_Comm", 14 | "name": "comm" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "flag" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Iprobe" 27 | } 28 | -------------------------------------------------------------------------------- /specs/irecv.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "source" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Irecv" 35 | } 36 | -------------------------------------------------------------------------------- /specs/irsend.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Irsend" 35 | } 36 | -------------------------------------------------------------------------------- /specs/is_thread_main.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "External Interfaces C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "flag" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Is_thread_main" 11 | } 12 | -------------------------------------------------------------------------------- /specs/isend.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Isend" 35 | } 36 | -------------------------------------------------------------------------------- /specs/issend.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Issend" 35 | } 36 | -------------------------------------------------------------------------------- /specs/lookup_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "service_name" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | }, 12 | { 13 | "type": "char*", 14 | "name": "port_name" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Lookup_name" 19 | } 20 | -------------------------------------------------------------------------------- /specs/op_commutative.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Op", 6 | "name": "op" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "commute" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Op_commutative" 15 | } 16 | -------------------------------------------------------------------------------- /specs/op_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_User_function*", 6 | "name": "function" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "commute" 11 | }, 12 | { 13 | "type": "MPI_Op*", 14 | "name": "op" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Op_create" 19 | } 20 | -------------------------------------------------------------------------------- /specs/op_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Op*", 6 | "name": "op" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Op_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/open_port.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Info", 6 | "name": "info" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "port_name" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Open_port" 15 | } 16 | -------------------------------------------------------------------------------- /specs/pack.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "inbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "incount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "datatype" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "outbuf" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "outsize" 23 | }, 24 | { 25 | "type": "int*", 26 | "name": "position" 27 | }, 28 | { 29 | "type": "MPI_Comm", 30 | "name": "comm" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Pack" 35 | } 36 | -------------------------------------------------------------------------------- /specs/pack_external.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "datarep" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "inbuf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "incount" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "void*", 22 | "name": "outbuf" 23 | }, 24 | { 25 | "type": "MPI_Aint", 26 | "name": "outsize" 27 | }, 28 | { 29 | "type": "MPI_Aint*", 30 | "name": "position" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Pack_external" 35 | } 36 | -------------------------------------------------------------------------------- /specs/pack_external_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "datarep" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "incount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "datatype" 15 | }, 16 | { 17 | "type": "MPI_Aint*", 18 | "name": "size" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Pack_external_size" 23 | } 24 | -------------------------------------------------------------------------------- /specs/pack_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "incount" 7 | }, 8 | { 9 | "type": "MPI_Datatype", 10 | "name": "datatype" 11 | }, 12 | { 13 | "type": "MPI_Comm", 14 | "name": "comm" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "size" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Pack_size" 23 | } 24 | -------------------------------------------------------------------------------- /specs/pcontrol.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Profiling Interface C Bindings", 3 | "args": [ 4 | { 5 | "type": "const", 6 | "name": "int" 7 | }, 8 | { 9 | "type": "level", 10 | "name": "..." 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Pcontrol" 15 | } 16 | -------------------------------------------------------------------------------- /specs/probe.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "source" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "tag" 11 | }, 12 | { 13 | "type": "MPI_Comm", 14 | "name": "comm" 15 | }, 16 | { 17 | "type": "MPI_Status*", 18 | "name": "status" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Probe" 23 | } 24 | -------------------------------------------------------------------------------- /specs/publish_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "service_name" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | }, 12 | { 13 | "type": "char*", 14 | "name": "port_name" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Publish_name" 19 | } 20 | -------------------------------------------------------------------------------- /specs/put.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "origin_addr" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "origin_count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "origin_datatype" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "target_rank" 19 | }, 20 | { 21 | "type": "MPI_Aint", 22 | "name": "target_disp" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "target_count" 27 | }, 28 | { 29 | "type": "MPI_Datatype", 30 | "name": "target_datatype" 31 | }, 32 | { 33 | "type": "MPI_Win", 34 | "name": "win" 35 | } 36 | ], 37 | "retVal": "int", 38 | "name": "MPI_Put" 39 | } 40 | -------------------------------------------------------------------------------- /specs/query_thread.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "External Interfaces C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "provided" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Query_thread" 11 | } 12 | -------------------------------------------------------------------------------- /specs/recv.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "source" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Status*", 30 | "name": "status" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Recv" 35 | } 36 | -------------------------------------------------------------------------------- /specs/recv_init.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "source" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Recv_init" 35 | } 36 | -------------------------------------------------------------------------------- /specs/reduce.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "recvbuf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Op", 22 | "name": "op" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "root" 27 | }, 28 | { 29 | "type": "MPI_Comm", 30 | "name": "comm" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Reduce" 35 | } 36 | -------------------------------------------------------------------------------- /specs/reduce_local.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "inbuf" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "inoutbuf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Op", 22 | "name": "op" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Reduce_local" 27 | } 28 | -------------------------------------------------------------------------------- /specs/reduce_scatter.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "recvbuf" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "recvcounts" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Op", 22 | "name": "op" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Reduce_scatter" 31 | } 32 | -------------------------------------------------------------------------------- /specs/register_datarep.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "I/O C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "datarep" 7 | }, 8 | { 9 | "type": "MPI_Datarep_conversion_function*", 10 | "name": "read_conversion_fn" 11 | }, 12 | { 13 | "type": "MPI_Datarep_conversion_function*", 14 | "name": "write_conversion_fn" 15 | }, 16 | { 17 | "type": "MPI_Datarep_extent_function*", 18 | "name": "dtype_file_extent_fn" 19 | }, 20 | { 21 | "type": "void*", 22 | "name": "extra_state" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Register_datarep" 27 | } 28 | -------------------------------------------------------------------------------- /specs/request_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Request*", 6 | "name": "request" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Request_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/request_get_status.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Request", 6 | "name": "request" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "flag" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Request_get_status" 19 | } 20 | -------------------------------------------------------------------------------- /specs/rsend.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Rsend" 31 | } 32 | -------------------------------------------------------------------------------- /specs/rsend_init.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Rsend_init" 35 | } 36 | -------------------------------------------------------------------------------- /specs/scan.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "recvbuf" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "datatype" 19 | }, 20 | { 21 | "type": "MPI_Op", 22 | "name": "op" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Scan" 31 | } 32 | -------------------------------------------------------------------------------- /specs/scatter.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "sendcount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "sendtype" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "recvbuf" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "recvcount" 23 | }, 24 | { 25 | "type": "MPI_Datatype", 26 | "name": "recvtype" 27 | }, 28 | { 29 | "type": "int", 30 | "name": "root" 31 | }, 32 | { 33 | "type": "MPI_Comm", 34 | "name": "comm" 35 | } 36 | ], 37 | "retVal": "int", 38 | "name": "MPI_Scatter" 39 | } 40 | -------------------------------------------------------------------------------- /specs/scatterv.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Collective Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "sendcounts" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "displs" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "sendtype" 19 | }, 20 | { 21 | "type": "void*", 22 | "name": "recvbuf" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "recvcount" 27 | }, 28 | { 29 | "type": "MPI_Datatype", 30 | "name": "recvtype" 31 | }, 32 | { 33 | "type": "int", 34 | "name": "root" 35 | }, 36 | { 37 | "type": "MPI_Comm", 38 | "name": "comm" 39 | } 40 | ], 41 | "retVal": "int", 42 | "name": "MPI_Scatterv" 43 | } 44 | -------------------------------------------------------------------------------- /specs/send.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Send" 31 | } 32 | -------------------------------------------------------------------------------- /specs/send_init.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Send_init" 35 | } 36 | -------------------------------------------------------------------------------- /specs/sendrecv.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "sendbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "sendcount" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "sendtype" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "sendtag" 23 | }, 24 | { 25 | "type": "void*", 26 | "name": "recvbuf" 27 | }, 28 | { 29 | "type": "int", 30 | "name": "recvcount" 31 | }, 32 | { 33 | "type": "MPI_Datatype", 34 | "name": "recvtype" 35 | }, 36 | { 37 | "type": "int", 38 | "name": "source" 39 | }, 40 | { 41 | "type": "int", 42 | "name": "recvtag" 43 | }, 44 | { 45 | "type": "MPI_Comm", 46 | "name": "comm" 47 | }, 48 | { 49 | "type": "MPI_Status*", 50 | "name": "status" 51 | } 52 | ], 53 | "retVal": "int", 54 | "name": "MPI_Sendrecv" 55 | } 56 | -------------------------------------------------------------------------------- /specs/sendrecv_replace.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "datatype" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "sendtag" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "source" 27 | }, 28 | { 29 | "type": "int", 30 | "name": "recvtag" 31 | }, 32 | { 33 | "type": "MPI_Comm", 34 | "name": "comm" 35 | }, 36 | { 37 | "type": "MPI_Status*", 38 | "name": "status" 39 | } 40 | ], 41 | "retVal": "int", 42 | "name": "MPI_Sendrecv_replace" 43 | } 44 | -------------------------------------------------------------------------------- /specs/ssend.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Ssend" 31 | } 32 | -------------------------------------------------------------------------------- /specs/ssend_init.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "buf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "count" 11 | }, 12 | { 13 | "type": "MPI_Datatype", 14 | "name": "type" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "dest" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "tag" 23 | }, 24 | { 25 | "type": "MPI_Comm", 26 | "name": "comm" 27 | }, 28 | { 29 | "type": "MPI_Request*", 30 | "name": "request" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Ssend_init" 35 | } 36 | -------------------------------------------------------------------------------- /specs/start.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Request*", 6 | "name": "request" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Start" 11 | } 12 | -------------------------------------------------------------------------------- /specs/startall.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "MPI_Request*", 10 | "name": "requests" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Startall" 15 | } 16 | -------------------------------------------------------------------------------- /specs/status_set_cancelled.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "External Interfaces C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Status*", 6 | "name": "status" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "flag" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Status_set_cancelled" 15 | } 16 | -------------------------------------------------------------------------------- /specs/status_set_elements.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "External Interfaces C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Status*", 6 | "name": "status" 7 | }, 8 | { 9 | "type": "MPI_Datatype", 10 | "name": "datatype" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "count" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Status_set_elements" 19 | } 20 | -------------------------------------------------------------------------------- /specs/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Request*", 6 | "name": "request" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "completed" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "status" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Test" 19 | } 20 | -------------------------------------------------------------------------------- /specs/test_cancelled.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Status*", 6 | "name": "status" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "flag" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Test_cancelled" 15 | } 16 | -------------------------------------------------------------------------------- /specs/testall.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "MPI_Request*", 10 | "name": "requests" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "flag" 15 | }, 16 | { 17 | "type": "MPI_Status*", 18 | "name": "statuses" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Testall" 23 | } 24 | -------------------------------------------------------------------------------- /specs/testany.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "MPI_Request*", 10 | "name": "requests" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "indx" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "completed" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "status" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Testany" 27 | } 28 | -------------------------------------------------------------------------------- /specs/testsome.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "incount" 7 | }, 8 | { 9 | "type": "MPI_Request*", 10 | "name": "requests" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "outcount" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "indices" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "statuses" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Testsome" 27 | } 28 | -------------------------------------------------------------------------------- /specs/topo_test.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Topologies C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Comm", 6 | "name": "comm" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "status" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Topo_test" 15 | } 16 | -------------------------------------------------------------------------------- /specs/type_commit.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype*", 6 | "name": "type" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Type_commit" 11 | } 12 | -------------------------------------------------------------------------------- /specs/type_contiguous.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "MPI_Datatype", 10 | "name": "oldtype" 11 | }, 12 | { 13 | "type": "MPI_Datatype*", 14 | "name": "newtype" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Type_contiguous" 19 | } 20 | -------------------------------------------------------------------------------- /specs/type_create_darray.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "size" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "rank" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "ndims" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "gsize_array" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "distrib_array" 23 | }, 24 | { 25 | "type": "int*", 26 | "name": "darg_array" 27 | }, 28 | { 29 | "type": "int*", 30 | "name": "psize_array" 31 | }, 32 | { 33 | "type": "int", 34 | "name": "order" 35 | }, 36 | { 37 | "type": "MPI_Datatype", 38 | "name": "oldtype" 39 | }, 40 | { 41 | "type": "MPI_Datatype*", 42 | "name": "newtype" 43 | } 44 | ], 45 | "retVal": "int", 46 | "name": "MPI_Type_create_darray" 47 | } 48 | -------------------------------------------------------------------------------- /specs/type_create_hindexed.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "array_of_blocklengths" 11 | }, 12 | { 13 | "type": "MPI_Aint*", 14 | "name": "array_of_displacements" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "oldtype" 19 | }, 20 | { 21 | "type": "MPI_Datatype*", 22 | "name": "newtype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Type_create_hindexed" 27 | } 28 | -------------------------------------------------------------------------------- /specs/type_create_hvector.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "blocklength" 11 | }, 12 | { 13 | "type": "MPI_Aint", 14 | "name": "stride" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "oldtype" 19 | }, 20 | { 21 | "type": "MPI_Datatype*", 22 | "name": "newtype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Type_create_hvector" 27 | } 28 | -------------------------------------------------------------------------------- /specs/type_create_indexed_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "blocklength" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "array_of_displacements" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "oldtype" 19 | }, 20 | { 21 | "type": "MPI_Datatype*", 22 | "name": "newtype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Type_create_indexed_block" 27 | } 28 | -------------------------------------------------------------------------------- /specs/type_create_keyval.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Type_copy_attr_function*", 6 | "name": "type_copy_attr_fn" 7 | }, 8 | { 9 | "type": "MPI_Type_delete_attr_function*", 10 | "name": "type_delete_attr_fn" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "type_keyval" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "extra_state" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Type_create_keyval" 23 | } 24 | -------------------------------------------------------------------------------- /specs/type_create_resized.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "oldtype" 7 | }, 8 | { 9 | "type": "MPI_Aint", 10 | "name": "lb" 11 | }, 12 | { 13 | "type": "MPI_Aint", 14 | "name": "extent" 15 | }, 16 | { 17 | "type": "MPI_Datatype*", 18 | "name": "newtype" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Type_create_resized" 23 | } 24 | -------------------------------------------------------------------------------- /specs/type_create_struct.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "array_of_blocklengths" 11 | }, 12 | { 13 | "type": "MPI_Aint*", 14 | "name": "array_of_displacements" 15 | }, 16 | { 17 | "type": "MPI_Datatype*", 18 | "name": "array_of_types" 19 | }, 20 | { 21 | "type": "MPI_Datatype*", 22 | "name": "newtype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Type_create_struct" 27 | } 28 | -------------------------------------------------------------------------------- /specs/type_create_subarray.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "ndims" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "size_array" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "subsize_array" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "start_array" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "order" 23 | }, 24 | { 25 | "type": "MPI_Datatype", 26 | "name": "oldtype" 27 | }, 28 | { 29 | "type": "MPI_Datatype*", 30 | "name": "newtype" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Type_create_subarray" 35 | } 36 | -------------------------------------------------------------------------------- /specs/type_delete_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "type_keyval" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Type_delete_attr" 15 | } 16 | -------------------------------------------------------------------------------- /specs/type_dup.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "MPI_Datatype*", 10 | "name": "newtype" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Type_dup" 15 | } 16 | -------------------------------------------------------------------------------- /specs/type_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype*", 6 | "name": "type" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Type_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/type_free_keyval.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "type_keyval" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Type_free_keyval" 11 | } 12 | -------------------------------------------------------------------------------- /specs/type_get_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "type_keyval" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "attribute_val" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "flag" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Type_get_attr" 23 | } 24 | -------------------------------------------------------------------------------- /specs/type_get_contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "mtype" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "max_integers" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "max_addresses" 15 | }, 16 | { 17 | "type": "int", 18 | "name": "max_datatypes" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "array_of_integers" 23 | }, 24 | { 25 | "type": "MPI_Aint*", 26 | "name": "array_of_addresses" 27 | }, 28 | { 29 | "type": "MPI_Datatype*", 30 | "name": "array_of_datatypes" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Type_get_contents" 35 | } 36 | -------------------------------------------------------------------------------- /specs/type_get_envelope.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "num_integers" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "num_addresses" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "num_datatypes" 19 | }, 20 | { 21 | "type": "int*", 22 | "name": "combiner" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Type_get_envelope" 27 | } 28 | -------------------------------------------------------------------------------- /specs/type_get_extent.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "MPI_Aint*", 10 | "name": "lb" 11 | }, 12 | { 13 | "type": "MPI_Aint*", 14 | "name": "extent" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Type_get_extent" 19 | } 20 | -------------------------------------------------------------------------------- /specs/type_get_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "type_name" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "resultlen" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Type_get_name" 19 | } 20 | -------------------------------------------------------------------------------- /specs/type_get_true_extent.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "datatype" 7 | }, 8 | { 9 | "type": "MPI_Aint*", 10 | "name": "true_lb" 11 | }, 12 | { 13 | "type": "MPI_Aint*", 14 | "name": "true_extent" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Type_get_true_extent" 19 | } 20 | -------------------------------------------------------------------------------- /specs/type_indexed.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "array_of_blocklengths" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "array_of_displacements" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "oldtype" 19 | }, 20 | { 21 | "type": "MPI_Datatype*", 22 | "name": "newtype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Type_indexed" 27 | } 28 | -------------------------------------------------------------------------------- /specs/type_match_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Language Bindings C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "typeclass" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "size" 11 | }, 12 | { 13 | "type": "MPI_Datatype*", 14 | "name": "type" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Type_match_size" 19 | } 20 | -------------------------------------------------------------------------------- /specs/type_set_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "type_keyval" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "attribute_val" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Type_set_attr" 19 | } 20 | -------------------------------------------------------------------------------- /specs/type_set_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "type_name" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Type_set_name" 15 | } 16 | -------------------------------------------------------------------------------- /specs/type_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Datatype", 6 | "name": "type" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "size" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Type_size" 15 | } 16 | -------------------------------------------------------------------------------- /specs/type_vector.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "blocklength" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "stride" 15 | }, 16 | { 17 | "type": "MPI_Datatype", 18 | "name": "oldtype" 19 | }, 20 | { 21 | "type": "MPI_Datatype*", 22 | "name": "newtype" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Type_vector" 27 | } 28 | -------------------------------------------------------------------------------- /specs/unpack.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "inbuf" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "insize" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "position" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "outbuf" 19 | }, 20 | { 21 | "type": "int", 22 | "name": "outcount" 23 | }, 24 | { 25 | "type": "MPI_Datatype", 26 | "name": "datatype" 27 | }, 28 | { 29 | "type": "MPI_Comm", 30 | "name": "comm" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Unpack" 35 | } 36 | -------------------------------------------------------------------------------- /specs/unpack_external.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Datatypes C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "datarep" 7 | }, 8 | { 9 | "type": "void*", 10 | "name": "inbuf" 11 | }, 12 | { 13 | "type": "MPI_Aint", 14 | "name": "insize" 15 | }, 16 | { 17 | "type": "MPI_Aint*", 18 | "name": "position" 19 | }, 20 | { 21 | "type": "void*", 22 | "name": "outbuf" 23 | }, 24 | { 25 | "type": "int", 26 | "name": "outcount" 27 | }, 28 | { 29 | "type": "MPI_Datatype", 30 | "name": "datatype" 31 | } 32 | ], 33 | "retVal": "int", 34 | "name": "MPI_Unpack_external" 35 | } 36 | -------------------------------------------------------------------------------- /specs/unpublish_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Process Creation and Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "char*", 6 | "name": "service_name" 7 | }, 8 | { 9 | "type": "MPI_Info", 10 | "name": "info" 11 | }, 12 | { 13 | "type": "char*", 14 | "name": "port_name" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Unpublish_name" 19 | } 20 | -------------------------------------------------------------------------------- /specs/wait.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Request*", 6 | "name": "request" 7 | }, 8 | { 9 | "type": "MPI_Status*", 10 | "name": "status" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Wait" 15 | } 16 | -------------------------------------------------------------------------------- /specs/waitall.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "MPI_Request*", 10 | "name": "requests" 11 | }, 12 | { 13 | "type": "MPI_Status*", 14 | "name": "statuses" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Waitall" 19 | } 20 | -------------------------------------------------------------------------------- /specs/waitany.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "count" 7 | }, 8 | { 9 | "type": "MPI_Request*", 10 | "name": "requests" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "indx" 15 | }, 16 | { 17 | "type": "MPI_Status*", 18 | "name": "status" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Waitany" 23 | } 24 | -------------------------------------------------------------------------------- /specs/waitsome.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Point-to-Point Communication C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "incount" 7 | }, 8 | { 9 | "type": "MPI_Request*", 10 | "name": "requests" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "outcount" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "indices" 19 | }, 20 | { 21 | "type": "MPI_Status*", 22 | "name": "statuses" 23 | } 24 | ], 25 | "retVal": "int", 26 | "name": "MPI_Waitsome" 27 | } 28 | -------------------------------------------------------------------------------- /specs/win_call_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "errorcode" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_call_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_complete.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Win_complete" 11 | } 12 | -------------------------------------------------------------------------------- /specs/win_create.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "void*", 6 | "name": "base" 7 | }, 8 | { 9 | "type": "MPI_Aint", 10 | "name": "size" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "disp_unit" 15 | }, 16 | { 17 | "type": "MPI_Info", 18 | "name": "info" 19 | }, 20 | { 21 | "type": "MPI_Comm", 22 | "name": "comm" 23 | }, 24 | { 25 | "type": "MPI_Win*", 26 | "name": "win" 27 | } 28 | ], 29 | "retVal": "int", 30 | "name": "MPI_Win_create" 31 | } 32 | -------------------------------------------------------------------------------- /specs/win_create_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win_errhandler_function*", 6 | "name": "function" 7 | }, 8 | { 9 | "type": "MPI_Errhandler*", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_create_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_create_keyval.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win_copy_attr_function*", 6 | "name": "win_copy_attr_fn" 7 | }, 8 | { 9 | "type": "MPI_Win_delete_attr_function*", 10 | "name": "win_delete_attr_fn" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "win_keyval" 15 | }, 16 | { 17 | "type": "void*", 18 | "name": "extra_state" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Win_create_keyval" 23 | } 24 | -------------------------------------------------------------------------------- /specs/win_delete_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "win_keyval" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_delete_attr" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_fence.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "assert" 7 | }, 8 | { 9 | "type": "MPI_Win", 10 | "name": "win" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_fence" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_free.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win*", 6 | "name": "win" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Win_free" 11 | } 12 | -------------------------------------------------------------------------------- /specs/win_free_keyval.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "int*", 6 | "name": "win_keyval" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Win_free_keyval" 11 | } 12 | -------------------------------------------------------------------------------- /specs/win_get_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "win_keyval" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "attribute_val" 15 | }, 16 | { 17 | "type": "int*", 18 | "name": "flag" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Win_get_attr" 23 | } 24 | -------------------------------------------------------------------------------- /specs/win_get_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "MPI_Errhandler*", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_get_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_get_group.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "MPI_Group*", 10 | "name": "group" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_get_group" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_get_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "win_name" 11 | }, 12 | { 13 | "type": "int*", 14 | "name": "resultlen" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Win_get_name" 19 | } 20 | -------------------------------------------------------------------------------- /specs/win_lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "lock_type" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "rank" 11 | }, 12 | { 13 | "type": "int", 14 | "name": "assert" 15 | }, 16 | { 17 | "type": "MPI_Win", 18 | "name": "win" 19 | } 20 | ], 21 | "retVal": "int", 22 | "name": "MPI_Win_lock" 23 | } 24 | -------------------------------------------------------------------------------- /specs/win_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "assert" 11 | }, 12 | { 13 | "type": "MPI_Win", 14 | "name": "win" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Win_post" 19 | } 20 | -------------------------------------------------------------------------------- /specs/win_set_attr.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "win_keyval" 11 | }, 12 | { 13 | "type": "void*", 14 | "name": "attribute_val" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Win_set_attr" 19 | } 20 | -------------------------------------------------------------------------------- /specs/win_set_errhandler.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "MPI_Errhandler", 10 | "name": "errhandler" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_set_errhandler" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_set_name.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "Groups, Contexts, Communicators, and Caching C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "char*", 10 | "name": "win_name" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_set_name" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_start.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Group", 6 | "name": "group" 7 | }, 8 | { 9 | "type": "int", 10 | "name": "assert" 11 | }, 12 | { 13 | "type": "MPI_Win", 14 | "name": "win" 15 | } 16 | ], 17 | "retVal": "int", 18 | "name": "MPI_Win_start" 19 | } 20 | -------------------------------------------------------------------------------- /specs/win_test.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | }, 8 | { 9 | "type": "int*", 10 | "name": "flag" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_test" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "int", 6 | "name": "rank" 7 | }, 8 | { 9 | "type": "MPI_Win", 10 | "name": "win" 11 | } 12 | ], 13 | "retVal": "int", 14 | "name": "MPI_Win_unlock" 15 | } 16 | -------------------------------------------------------------------------------- /specs/win_wait.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "One-Sided Communications C Bindings", 3 | "args": [ 4 | { 5 | "type": "MPI_Win", 6 | "name": "win" 7 | } 8 | ], 9 | "retVal": "int", 10 | "name": "MPI_Win_wait" 11 | } 12 | -------------------------------------------------------------------------------- /specs/wtick.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [], 4 | "retVal": "double", 5 | "name": "MPI_Wtick" 6 | } 7 | -------------------------------------------------------------------------------- /specs/wtime.json: -------------------------------------------------------------------------------- 1 | { 2 | "category": "MPI Environmenta Management C Bindings", 3 | "args": [], 4 | "retVal": "double", 5 | "name": "MPI_Wtime" 6 | } 7 | -------------------------------------------------------------------------------- /test.lua: -------------------------------------------------------------------------------- 1 | --Torch lib for mpi commnication 2 | local ffi = require("ffi") 3 | ffi.load("libmpi",true) 4 | 5 | require 'mpiT' 6 | 7 | mpiT.Init() 8 | 9 | print('init') 10 | 11 | _rank = torch.IntStorage(1) 12 | mpiT.Comm_rank(mpiT.COMM_WORLD,_rank) 13 | rank = _rank[1] 14 | 15 | _size = torch.IntStorage(1) 16 | mpiT.Comm_size(mpiT.COMM_WORLD,_size) 17 | size = _size[1] 18 | 19 | assert(size>1) 20 | 21 | print('size') 22 | 23 | _sdata = torch.FloatTensor(1):storage() 24 | _sdata:fill(rank) 25 | _rdata = torch.FloatTensor(1):storage() 26 | _rdata:fill(rank) 27 | 28 | src = (rank-1)%size 29 | dest = (rank+1)%size 30 | tag = 0 31 | status = mpiT.Status(1) 32 | 33 | print('[' .. rank .. '/' .. size .. ']' .. 's=' .. _sdata[1] .. 'r=' .. _rdata[1] ) 34 | if (rank == 0) then 35 | mpiT.Send(_sdata,1,mpiT.FLOAT,dest,tag,mpiT.COMM_WORLD) 36 | mpiT.Recv(_rdata,1,mpiT.FLOAT,src,tag,mpiT.COMM_WORLD,status) 37 | else 38 | mpiT.Recv(_rdata,1,mpiT.FLOAT,src,tag,mpiT.COMM_WORLD,status) 39 | mpiT.Send(_sdata,1,mpiT.FLOAT,dest,tag,mpiT.COMM_WORLD) 40 | end 41 | print('[' .. rank .. '/' .. size .. ']' .. 's=' .. _sdata[1] .. 'r=' .. _rdata[1] ) 42 | 43 | mpiT.Finalize() 44 | 45 | -------------------------------------------------------------------------------- /test/testireduceall.lua: -------------------------------------------------------------------------------- 1 | --Torch lib for mpi commnication 2 | 3 | require 'mpiT' 4 | require 'sys' 5 | 6 | mpiT.Init() 7 | 8 | megs = os.getenv('MEGS') or '10' 9 | megs = tonumber(megs) 10 | 11 | _rank = torch.IntStorage(1) 12 | mpiT.Comm_rank(mpiT.COMM_WORLD,_rank) 13 | rank = _rank[1] 14 | 15 | _size = torch.IntStorage(1) 16 | mpiT.Comm_size(mpiT.COMM_WORLD,_size) 17 | size = _size[1] 18 | 19 | if rank == 0 then print('num nodes: ' .. size) end 20 | 21 | torch.manualSeed(123) 22 | a = torch.FloatTensor(megs,1024,1024):uniform() 23 | if rank == 0 then print('a:size()', a:size()) end 24 | a_reduced = torch.FloatTensor(a:size()):zero() 25 | if rank == 0 then print('a:storage()[1]', a:storage()[1]) end 26 | 27 | request = mpiT.Request() 28 | completed = torch.IntStorage(1) 29 | status = mpiT.Status() 30 | 31 | sys.tic() 32 | mpiT.Iallreduce(a:storage(), a_reduced:storage(), a:numel(), mpiT.FLOAT, mpiT.SUM, mpiT.COMM_WORLD, request) 33 | mpiT.Test(request, completed, status) 34 | if rank == 0 then print('completed', completed[1]) end 35 | mpiT.Wait(request, status) 36 | if rank == 0 then print('toc: ', sys.toc()) end 37 | 38 | mpiT.Test(request, completed, status) 39 | if rank == 0 then print('completed', completed[1]) end 40 | 41 | if rank == 0 then print('a after :storage()[1]', a_reduced:storage()[1]) end 42 | 43 | mpiT.Finalize() 44 | 45 | -------------------------------------------------------------------------------- /test/testreduceall.lua: -------------------------------------------------------------------------------- 1 | --Torch lib for mpi commnication 2 | 3 | require 'mpiT' 4 | require 'sys' 5 | 6 | mpiT.Init() 7 | 8 | megs = os.getenv('MEGS') or '10' 9 | megs = tonumber(megs) 10 | 11 | _rank = torch.IntStorage(1) 12 | mpiT.Comm_rank(mpiT.COMM_WORLD,_rank) 13 | rank = _rank[1] 14 | 15 | _size = torch.IntStorage(1) 16 | mpiT.Comm_size(mpiT.COMM_WORLD,_size) 17 | size = _size[1] 18 | 19 | if rank == 0 then print('num nodes: ' .. size) end 20 | 21 | torch.manualSeed(123) 22 | a = torch.FloatTensor(megs,1024,1024):uniform() 23 | if rank == 0 then print('a:size()', a:size()) end 24 | a_reduced = torch.FloatTensor(a:size()):zero() 25 | if rank == 0 then print('a:storage()[1]', a:storage()[1]) end 26 | 27 | sys.tic() 28 | mpiT.Allreduce(a:storage(), a_reduced:storage(), a:numel(), mpiT.FLOAT, mpiT.SUM, mpiT.COMM_WORLD) 29 | if rank == 0 then print('toc: ', sys.toc()) end 30 | 31 | if rank == 0 then print('a after :storage()[1]', a_reduced:storage()[1]) end 32 | 33 | mpiT.Finalize() 34 | 35 | --------------------------------------------------------------------------------