Hi Freddie, I have a similar problem. I installed Anaconda distribution, therefore I am not sure about the compiler but mpi4py seems to work only with Intel MPI. At first it was installing using MS MPI with wrong directories, then I corrected them with correct MS MPI. But the result of famous mpiexec -4 hello.py was always 0. Then I tried with Intel MPI and it worked. I checked MS MPI and Intel MPI also with VS Intel Fortran and the result was the same. However when I run Couette example with either of them, the result is: INTEL MPI Traceback (most recent call last): File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\util.py", line 32, in __call__ res = cache[key] KeyError: (, b'\x80\x03X\n\x00\x00\x00negdivconfq\x00X^\r\x00\x00\n\n#include \n#include \n#include \n\n#define PYFR_ALIGN_BYTES 32\n#define PYFR_NOINLINE __attribute__ ((noinline))\n\n#define min(a, b) ((a) < (b) ? (a) : (b))\n#define max(a, b) ((a) > (b) ? (a) : (b))\n\n// Typedefs\ntypedef double fpdtype_t;\n\n// OpenMP static loop scheduling functions\n\nstatic inline int\ngcd(int a, int b)\n{\n return (a == 0) ? b : gcd(b % a, a);\n}\n\nstatic inline void\nloop_sched_1d(int n, int align, int *b, int *e)\n{\n int tid = omp_get_thread_num();\n int nth = omp_get_num_threads();\n\n // Round up n to be a multiple of nth\n int rn = n + nth - 1 - (n - 1) % nth;\n\n // Nominal tile size\n int sz = rn / nth;\n\n // Handle alignment\n sz += align - 1 - (sz - 1) % align;\n\n // Assign the starting and ending index\n *b = sz * tid;\n *e = min(*b + sz, n);\n\n // Clamp\n if (*b >= n)\n *b = *e = 0;\n}\n\nstatic inline void\nloop_sched_2d(int nrow, int ncol, int colalign,\n int *rowb, int *rowe, int *colb, int *cole)\n{\n int tid = omp_get_thread_num();\n int nth = omp_get_num_threads();\n\n // Distribute threads\n int nrowth = gcd(nrow, nth);\n int ncolth = nth / nrowth;\n\n // Row and column indices for our thread\n int rowix = tid / ncolth;\n int colix = tid % ncolth;\n\n // Round up ncol to be a multiple of ncolth\n int rncol = ncol + ncolth - 1 - (ncol - 1) % ncolth;\n\n // Nominal tile size\n int ntilerow = nrow / nrowth;\n int ntilecol = rncol / ncolth;\n\n // Handle column alignment\n ntilecol += colalign - 1 - (ntilecol - 1) % colalign;\n\n // Assign the starting and ending row to each thread\n *rowb = ntilerow * rowix;\n *rowe = *rowb + ntilerow;\n\n // Assign the starting and ending column to each thread\n *colb = ntilecol * colix;\n *cole = min(*colb + ntilecol, ncol);\n\n // Clamp\n if (*colb >= ncol)\n *colb = *cole = 0;\n}\n\n\n\n\n\nstatic PYFR_NOINLINE void negdivconf_inner(int _nx, const fpdtype_t *__restrict__ rcpdjac_v, fpdtype_t *__restrict__ tdivtconf_v0, fpdtype_t *__restrict__ tdivtconf_v1, fpdtype_t *__restrict__ tdivtconf_v2, fpdtype_t *__restrict__ tdivtconf_v3)\n {\n for (int _x = 0; _x < _nx; _x++)\n {\n \n tdivtconf_v0[_x] = -rcpdjac_v[_x]*tdivtconf_v0[_x] + (0.);\n tdivtconf_v1[_x] = -rcpdjac_v[_x]*tdivtconf_v1[_x] + (0.);\n tdivtconf_v2[_x] = -rcpdjac_v[_x]*tdivtconf_v2[_x] + (0.);\n tdivtconf_v3[_x] = -rcpdjac_v[_x]*tdivtconf_v3[_x] + (0.);\n\n }\n }\n void negdivconf(int _ny, int _nx, const fpdtype_t* __restrict__ rcpdjac_v, int lsdrcpdjac, fpdtype_t* __restrict__ tdivtconf_v, int lsdtdivtconf)\n {\n #pragma omp parallel\n {\n int align = PYFR_ALIGN_BYTES / sizeof(fpdtype_t);\n int rb, re, cb, ce;\n loop_sched_2d(_ny, _nx, align, &rb, &re, &cb, &ce);\n for (int _y = rb; _y < re; _y++)\n {\n negdivconf_inner(ce - cb, rcpdjac_v + _y*lsdrcpdjac + cb, tdivtconf_v + (_y*4 + 0)*lsdtdivtconf + cb, tdivtconf_v + (_y*4 + 1)*lsdtdivtconf + cb, tdivtconf_v + (_y*4 + 2)*lsdtdivtconf + cb, tdivtconf_v + (_y*4 + 3)*lsdtdivtconf + cb);\n }\n }\n }\n\nq\x01]q\x02(cnumpy\nint32\nq\x03h\x03cnumpy\nint64\nq\x04h\x03h\x04h\x03e\x87q\x05.', b'\x80\x03}q\x00.') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\Pc\Anaconda3\lib\site-packages\pytools\prefork.py", line 46, in call_capture_output popen = Popen(cmdline, cwd=cwd, stdin=PIPE, stdout=PIPE, stderr=PIPE) File "C:\Users\Pc\Anaconda3\lib\subprocess.py", line 950, in __init__ restore_signals, start_new_session) File "C:\Users\Pc\Anaconda3\lib\subprocess.py", line 1220, in _execute_child startupinfo) FileNotFoundError: [WinError 2] Sistem belirtilen dosyayı bulamıyor During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\Pc\Anaconda3\Scripts\pyfr-script.py", line 9, in load_entry_point('pyfr', 'console_scripts', 'pyfr')() File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\scripts\main.py", line 109, in main args.process(args) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\scripts\main.py", line 230, in process_run args, NativeReader(args.mesh), None, Inifile.load(args.cfg) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\scripts\main.py", line 214, in _process_common solver = get_solver(backend, rallocs, mesh, soln, cfg) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\solvers\__init__.py", line 14, in get_solver return get_integrator(backend, systemcls, rallocs, mesh, initsoln, cfg) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\integrators\__init__.py", line 26, in get_integrator return integrator(backend, systemcls, rallocs, mesh, initsoln, cfg) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\integrators\controllers.py", line 14, in __init__ super().__init__(*args, **kwargs) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\integrators\steppers.py", line 9, in __init__ super().__init__(*args, **kwargs) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\integrators\base.py", line 41, in __init__ self.system = systemcls(backend, rallocs, mesh, initsoln, nreg, cfg) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\solvers\base\system.py", line 59, in __init__ self._gen_kernels(eles, int_inters, mpi_inters, bc_inters) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\solvers\base\system.py", line 167, in _gen_kernels kernels[pn, kn].append(kgetter()) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\solvers\baseadvec\elements.py", line 116, in rcpdjac=self.rcpdjac_at('upts'), ploc=plocupts, u=solnupts File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\backends\base\backend.py", line 154, in kernel return kern(*args, **kwargs) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\backends\base\kernels.py", line 162, in kernel_meth fun = self._build_kernel(name, src, list(it.chain(*argt))) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\util.py", line 34, in __call__ res = cache[key] = self.func(*args, **kwargs) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\backends\openmp\provider.py", line 13, in _build_kernel mod = GccSourceModule(src, self.backend.cfg) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\backends\openmp\compiler.py", line 61, in __init__ super().__init__(src, cfg) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\backends\openmp\compiler.py", line 30, in __init__ lname = self._build(tmpdir) File "c:\users\pc\downloads\pyfr-1.3.0\pyfr-1.3.0\pyfr\backends\openmp\compiler.py", line 80, in _build call_capture_output(cmd + self._cflags, cwd=tmpdir) File "C:\Users\Pc\Anaconda3\lib\site-packages\pytools\prefork.py", line 197, in call_capture_output return forker[0].call_capture_output(cmdline, cwd, error_on_nonzero) File "C:\Users\Pc\Anaconda3\lib\site-packages\pytools\prefork.py", line 54, in call_capture_output % ( " ".join(cmdline), e)) pytools.prefork.ExecError: error invoking 'cc -shared -std=c99 -Ofast -march=native -fopenmp -fPIC -o libtmp.so tmp.c': [WinError 2] Cannot find defined file