Hello, everyone

I am testing the installation of pyfr1.5.0 on a single-core VPS on 
bandwagonhost with centos 6. Because the softwares' versions of the OS are 
very old, the python 3 is installed using anaconda, and the gcc 4.9.2 is 
installed using devtoolset-3 of RHSCL. All dependency and version number is 
satisified. But the test case gives me an error:

[root@localhost euler_vortex_2d]# pyfr run -b openmp euler_vortex_2d.pyfrm 
euler_vortex_2d.ini

*error msg:*

Traceback (most recent call last):
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/util.py", 
line 32, in __call__
KeyError: (<function OpenMPKernelProvider._build_kernel at 0x7f165ac5fb70>, 
b'\x80\x03X\x05\x00\x00\x00tfluxq\x00X^\x1e\x00\x00\n\n#include 
<omp.h>\n#include <stdlib.h>\n#include <tgmath.h>\n\n#define 
PYFR_ALIGN_BYTES 64\n#define SOA_SZ 8\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\n\n\n\n\nvoid tflux(int _ny, int _nx, 
fpdtype_t* __restrict__ f_v, int ldf, const fpdtype_t* __restrict__ 
smats_v, int ldsmats, const fpdtype_t* __restrict__ u_v, int ldu)\n         
      {\n                   #define X_IDX (_xi + _xj)\n                   
#define X_IDX_AOSOA(v, nv)                       ((_xi/SOA_SZ*(nv) + 
(v))*SOA_SZ + _xj)\n                   int align = PYFR_ALIGN_BYTES / 
sizeof(fpdtype_t);\n                   #pragma omp parallel\n               
    {\n                       \n                    int rb, re, cb, ce;\n   
                 loop_sched_2d(_ny, _nx, align, &rb, &re, &cb, &ce);\n     
               int nci = ((ce - cb) / SOA_SZ)*SOA_SZ;\n                   
 for (int _y = rb; _y < re; _y++)\n                    {\n                 
       for (int _xi = cb; _xi < cb + nci; _xi += SOA_SZ)\n                 
       {\n                            #pragma omp simd\n                   
         for (int _xj = 0; _xj < SOA_SZ; _xj++)\n                           
 {\n                                \n    // Compute the flux\n   
 fpdtype_t ftemp[2][4];\n    fpdtype_t p, v[2];\n    {\n\n    fpdtype_t 
invrho_ = 1.0/u_v[ldu*_y + X_IDX_AOSOA(0, 4)], E_ = u_v[ldu*_y + 
X_IDX_AOSOA(3, 4)];\n\n    // Compute the velocities\n    fpdtype_t 
rhov_[2];\n    rhov_[0] = u_v[ldu*_y + X_IDX_AOSOA(1, 4)];\n    v[0] = 
invrho_*rhov_[0];\n    rhov_[1] = u_v[ldu*_y + X_IDX_AOSOA(2, 4)];\n   
 v[1] = invrho_*rhov_[1];\n\n    // Compute the pressure\n    p = 
0.3999999999999999*(E_ - 0.5*invrho_*((rhov_[0])*(rhov_[0]) + 
(rhov_[1])*(rhov_[1])));\n\n    // Density and energy fluxes\n   
 ftemp[0][0] = rhov_[0];\n    ftemp[0][3] = (E_ + p)*v[0];\n    ftemp[1][0] 
= rhov_[1];\n    ftemp[1][3] = (E_ + p)*v[1];\n\n    // Momentum fluxes\n   
 ftemp[0][1] = rhov_[0]*v[0] + p;\n    ftemp[0][2] = rhov_[0]*v[1];\n   
 ftemp[1][1] = rhov_[1]*v[0];\n    ftemp[1][2] = rhov_[1]*v[1] + 
p;\n\n};\n\n    // Transform the fluxes\n    f_v[(0*_ny + _y)*ldf + 
X_IDX_AOSOA(0, 4)] = smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 
2)]*ftemp[0][0] + smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 
2)]*ftemp[1][0];\n    f_v[(0*_ny + _y)*ldf + X_IDX_AOSOA(1, 4)] = 
smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][1] + 
smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][1];\n   
 f_v[(0*_ny + _y)*ldf + X_IDX_AOSOA(2, 4)] = smats_v[(0*_ny + _y)*ldsmats + 
X_IDX_AOSOA(0, 2)]*ftemp[0][2] + smats_v[(0*_ny + _y)*ldsmats + 
X_IDX_AOSOA(1, 2)]*ftemp[1][2];\n    f_v[(0*_ny + _y)*ldf + X_IDX_AOSOA(3, 
4)] = smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][3] + 
smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][3];\n   
 f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(0, 4)] = smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(0, 2)]*ftemp[0][0] + smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(1, 2)]*ftemp[1][0];\n    f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(1, 
4)] = smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][1] + 
smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][1];\n   
 f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(2, 4)] = smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(0, 2)]*ftemp[0][2] + smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(1, 2)]*ftemp[1][2];\n    f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(3, 
4)] = smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][3] + 
smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][3];\n\n         
                   }\n                        }\n                       
 for (int _xi = cb + nci, _xj = 0; _xj < ce - _xi;\n                       
      _xj++)\n                        {\n                            \n   
 // Compute the flux\n    fpdtype_t ftemp[2][4];\n    fpdtype_t p, v[2];\n 
   {\n\n    fpdtype_t invrho_ = 1.0/u_v[ldu*_y + X_IDX_AOSOA(0, 4)], E_ = 
u_v[ldu*_y + X_IDX_AOSOA(3, 4)];\n\n    // Compute the velocities\n   
 fpdtype_t rhov_[2];\n    rhov_[0] = u_v[ldu*_y + X_IDX_AOSOA(1, 4)];\n   
 v[0] = invrho_*rhov_[0];\n    rhov_[1] = u_v[ldu*_y + X_IDX_AOSOA(2, 
4)];\n    v[1] = invrho_*rhov_[1];\n\n    // Compute the pressure\n    p = 
0.3999999999999999*(E_ - 0.5*invrho_*((rhov_[0])*(rhov_[0]) + 
(rhov_[1])*(rhov_[1])));\n\n    // Density and energy fluxes\n   
 ftemp[0][0] = rhov_[0];\n    ftemp[0][3] = (E_ + p)*v[0];\n    ftemp[1][0] 
= rhov_[1];\n    ftemp[1][3] = (E_ + p)*v[1];\n\n    // Momentum fluxes\n   
 ftemp[0][1] = rhov_[0]*v[0] + p;\n    ftemp[0][2] = rhov_[0]*v[1];\n   
 ftemp[1][1] = rhov_[1]*v[0];\n    ftemp[1][2] = rhov_[1]*v[1] + 
p;\n\n};\n\n    // Transform the fluxes\n    f_v[(0*_ny + _y)*ldf + 
X_IDX_AOSOA(0, 4)] = smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 
2)]*ftemp[0][0] + smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 
2)]*ftemp[1][0];\n    f_v[(0*_ny + _y)*ldf + X_IDX_AOSOA(1, 4)] = 
smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][1] + 
smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][1];\n   
 f_v[(0*_ny + _y)*ldf + X_IDX_AOSOA(2, 4)] = smats_v[(0*_ny + _y)*ldsmats + 
X_IDX_AOSOA(0, 2)]*ftemp[0][2] + smats_v[(0*_ny + _y)*ldsmats + 
X_IDX_AOSOA(1, 2)]*ftemp[1][2];\n    f_v[(0*_ny + _y)*ldf + X_IDX_AOSOA(3, 
4)] = smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][3] + 
smats_v[(0*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][3];\n   
 f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(0, 4)] = smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(0, 2)]*ftemp[0][0] + smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(1, 2)]*ftemp[1][0];\n    f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(1, 
4)] = smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][1] + 
smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][1];\n   
 f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(2, 4)] = smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(0, 2)]*ftemp[0][2] + smats_v[(1*_ny + _y)*ldsmats + 
X_IDX_AOSOA(1, 2)]*ftemp[1][2];\n    f_v[(1*_ny + _y)*ldf + X_IDX_AOSOA(3, 
4)] = smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(0, 2)]*ftemp[0][3] + 
smats_v[(1*_ny + _y)*ldsmats + X_IDX_AOSOA(1, 2)]*ftemp[1][3];\n\n         
               }\n                    }\n                   }\n             
      #undef X_IDX\n                   #undef X_IDX_AOSOA\n               
}\n\nq\x01]q\x02(cnumpy\nint32\nq\x03h\x03cnumpy\nint64\nq\x04h\x03h\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 "/op/anaconda3/bin/pyfr", line 11, in <module>
    load_entry_point('pyfr==1.5.0', 'console_scripts', 'pyfr')()
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/__main__.py",
 
line 110, in main
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/__main__.py",
 
line 235, in process_run
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/__main__.py",
 
line 216, in _process_common
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/solvers/__init__.py",
 
line 14, in get_solver
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/integrators/__init__.py",
 
line 43, in get_integrator
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/integrators/std/controllers.py",
 
line 12, in __init__
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/integrators/std/steppers.py",
 
line 8, in __init__
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/integrators/std/base.py",
 
line 12, in __init__
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/integrators/base.py",
 
line 59, in __init__
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/solvers/base/system.py",
 
line 65, in __init__
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/solvers/base/system.py",
 
line 174, in _gen_kernels
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/solvers/euler/elements.py",
 
line 74, in <lambda>
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/backends/base/backend.py",
 
line 166, in kernel
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/backends/base/kernels.py",
 
line 161, in kernel_meth
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/util.py", 
line 34, in __call__
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/backends/openmp/provider.py",
 
line 13, in _build_kernel
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/backends/openmp/compiler.py",
 
line 61, in __init__
  File 
"/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/backends/openmp/compiler.py",
 
line 33, in __init__
  File "/op/anaconda3/lib/python3.5/ctypes/__init__.py", line 347, in 
__init__
    self._handle = _dlopen(self._name, mode)
OSError: /op/anaconda3/bin/../lib/libgomp.so.1: version `GOMP_4.0' not 
found (required by /tmp/pyfr-0-i5qtiki9/libtmp.so)

It seems a conflict of GOMP libs. how to resolve this problem? I tried to 
use follow method to diagnose it

[root@localhost couette_flow_2d]# ldd  /tmp/pyfr-0-c6hurolh/libtmp.so
ldd: /tmp/pyfr-0-c6hurolh/libtmp.so: No such file or directory

But the temporary file is missing.

Is there anyway to solve this problem? Is cflags in [backend-openmp] 
helpful to this kind of 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 [email protected].
To post to this group, send an email to [email protected].
Visit this group at https://groups.google.com/group/pyfrmailinglist.
For more options, visit https://groups.google.com/d/optout.

Reply via email to