code: def mpi_submit(nslave, worker_args, worker_envs):
      
      worker_args += ['%s=%s' % (k, str(v)) for k, v in worker_envs.items()]
      sargs = ' '.join(args.command + worker_args)
      if args.hostfile is None:
          cmd = ' '.join(['mpirun -n %d' % (nslave)] + args.command + worker_args) 
      else:
          cmd = ' '.join(['mpirun -n %d --hostfile %s' % (nslave, args.hostfile)] + args.command + worker_args)
      print cmd
      subprocess.check_call(cmd, shell = True)
docs: customized submit script, that submit nslave jobs, each must contain args as parameter
        note this can be a lambda function containing additional parameters in input
        Parameters
           nslave number of slave process to start up
           args arguments to launch each job
                this usually includes the parameters of master_uri and parameters passed into submit