@validate_args(warnings=False)<EOL>def EasyHPC(backend:In('<STR_LIT>', '<STR_LIT>')|Function='<STR_LIT>',<EOL>n_tasks:In('<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT:count>')='<STR_LIT>',<EOL>n_results:In('<STR_LIT>', '<STR_LIT>')='<STR_LIT>',<EOL>aux_output:Bool=True,  <EOL>reduce:Function=None,<EOL>split_job=NotPassed,<EOL>parallel = True,<EOL>method = None,<EOL>pool = None<EOL>):
self = argparse.Namespace()<EOL>direct_call =  (~String&Function).valid(backend)<EOL>if direct_call:<EOL><INDENT>f = backend<EOL>backend = '<STR_LIT>'<EOL><DEDENT>if backend == '<STR_LIT>': <EOL><INDENT>self.processor = _MPI_processor<EOL>self.finalizer = _MPI_finalizer<EOL><DEDENT>if backend == '<STR_LIT>':<EOL><INDENT>self.processor = _MP_processor<EOL>self.finalizer = None<EOL><DEDENT>self.info = argparse.Namespace()<EOL>self.info.n_tasks = n_tasks<EOL>self.info.n_results = n_results<EOL>self.info.parallel = parallel<EOL>self.info.reduce = reduce<EOL>self.info.wrap_MPI = False<EOL>self.info.aux_output = aux_output <EOL>self.info.method = method<EOL>self.info.pool = pool or Pool()<EOL>self.info.split_job = split_job<EOL>if self.info.n_tasks == '<STR_LIT>':<EOL><INDENT>if self.info.n_results == '<STR_LIT>':<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>if NotPassed(self.info.split_job):<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT><DEDENT>if direct_call:<EOL><INDENT>def _lam(*args,**kwargs):<EOL><INDENT>return _MultiProcessorWrapper_call(args,kwargs,f,self.processor,self.finalizer,self.info)<EOL><DEDENT>return _lam<EOL><DEDENT>return lambda f: _easy_hpc_call(f,self)<EOL>
:param n_tasks: How many tasks does the decorated function handle? 
:param n_results: If the decorated function handles many tasks at once, are the results reduced (n_results = 'one') or not (as many results as tasks)?
:param reduce: Function that reduces multiple outputs to a single output
:param splitjob: Function that converts an input (to the decorated function) that represents one large job to two smaller jobs

NOTE: don't turn this into a class, you'll run into strange pickling errors