Hello, I've been using PyFR on a windows laptop with Cygwin 64bit, and 
after upgrading pyfr to 1.3, I get an error which seems to persist even 
when I downgrade back to 1.2.

$ pyfr run -b openmp -p euler_vortex_2d.pyfrm euler_vortex_2d.ini
Traceback (most recent call last):
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/util.py",
 
line 32, in __call__
KeyError: (<function OpenMPKernelProvider._build_kernel at 0x6fffda28c80>, 
b'(X\x08\x00\x00\x00par_gemmq\x00X\x96\n\x00\x00\n\n#include 
<omp.h>\n#include <stdlib.h>\n#include <tgmath.h>\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// CBLAS GEMM constants\n#define ROW_MAJOR 
101\n#define NO_TRANS  111\n\n// CBLAS GEMM prototype\ntypedef void 
(*cblas_gemm_t)(int, int, int,\n                             int, int, 
int,\n                             fpdtype_t, const fpdtype_t *, int,\n     
                        const fpdtype_t *, int,\n                           
  fpdtype_t, fpdtype_t *, int);\n\nvoid\npar_gemm(cblas_gemm_t gemm, int M, 
int N, int K,\n         fpdtype_t alpha, const fpdtype_t *A, int lda,\n     
    const fpdtype_t *B, int ldb,\n         fpdtype_t beta, fpdtype_t *C, 
int ldc)\n{\n    #pragma omp parallel\n    {\n        int begin, end;\n     
   loop_sched_1d(N, PYFR_ALIGN_BYTES / sizeof(fpdtype_t), &begin, 
&end);\n\n        gemm(ROW_MAJOR, NO_TRANS, NO_TRANS, M, end - begin, K,\n 
            alpha, A, lda, B + begin, ldb, beta, C + begin, ldc);\n   
 
}\n}\n\nq\x01]q\x02(cnumpy\nint64\nq\x03cnumpy\nint32\nq\x04h\x04h\x04cnumpy\nfloat64\nq\x05h\x03h\x04h\x03h\x04h\x05h\x03h\x04etq\x06.',
 
b'}q\x00.')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/User/PyFR/env/bin/pyfr", line 9, in <module>
    load_entry_point('pyfr==1.2.0', 'console_scripts', 'pyfr')()
  File 
"/usr/lib/python3.4/site-packages/mpmath-0.19-py3.4.egg/mpmath/ctx_mp.py", 
line 1301, in g
    return f(*args, **kwargs)
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/scripts/main.py",
 
line 112, in main
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/scripts/main.py",
 
line 233, in process_run
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/scripts/main.py",
 
line 217, in _process_common
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/solvers/__init__.py",
 
line 14, in get_solver
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/integrators/__init__.py",
 
line 26, in get_integrator
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/integrators/controllers.py",
 
line 14, in __init__
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/integrators/steppers.py",
 
line 9, in __init__
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/integrators/base.py",
 
line 41, in __init__
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/solvers/base/system.py",
 
line 59, in __init__
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/solvers/base/system.py",
 
line 167, in _gen_kernels
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/solvers/baseadvec/elements.py",
 
line 80, in <lambda>
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/backends/base/backend.py",
 
line 173, in kernel
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/backends/openmp/cblas.py",
 
line 94, in mul
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/util.py",
 
line 34, in __call__
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/backends/openmp/provider.py",
 
line 13, in _build_kernel
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/backends/openmp/compiler.py",
 
line 61, in __init__
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/backends/openmp/compiler.py",
 
line 30, in __init__
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pyfr-1.2.0-py3.4.egg/pyfr/backends/openmp/compiler.py",
 
line 80, in _build
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pytools/prefork.py", line 
197, in call_capture_output
    return forker[0].call_capture_output(cmdline, cwd, error_on_nonzero)
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pytools/prefork.py", line 
156, in call_capture_output
    error_on_nonzero)
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pytools/prefork.py", line 
136, in _remote_invoke
    who="Prefork client", partner="prefork server")
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pytools/prefork.py", line 
70, in _recv_packet
    size_bytes = sock.recv(size_bytes_size)
ConnectionResetError: [Errno 104] Connection reset by peer
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pytools/prefork.py", line 
144, in _quit
    self._remote_invoke("quit")
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pytools/prefork.py", line 
134, in _remote_invoke
    _send_packet(self.socket, (name, args, kwargs))
  File 
"/home/User/PyFR/env/lib/python3.4/site-packages/pytools/prefork.py", line 
64, in _send_packet
    sock.sendall(pack("I", len(packet)))
ConnectionResetError: [Errno 104] Connection reset by peer


since it refers to prefork, I thought it would be an issue with pytools, 
but changing versions of that seemed to not have any affect.

It may be worth noting that for v1.1 and 1.2 I've downloaded the program 
and used setup.py install, but for 1.3 my mentor suggested using pip -e and 
then pip. after creating a few virtual environments, I'm not sure how to 
approach the problem.

-- 
You received this message because you are subscribed to the Google Groups "PyFR 
Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyfrmailinglist+unsubscr...@googlegroups.com.
To post to this group, send an email to pyfrmailinglist@googlegroups.com.
Visit this group at https://groups.google.com/group/pyfrmailinglist.
For more options, visit https://groups.google.com/d/optout.

Reply via email to