RuntimeError: No partitioners available

Hello,

I was able to run single mesh cases using PyFR and now
I am trying to follow the example " 2D Euler Vortex" case for partitioning case.

I’ve installed METIS from below link and set path “PYFR_METIS_LIBRARY_PATH=”.

But, I got the following error after command for grid partition as shown below.

Please let me know how I can fix this…
Thanks!

$ pyfr partition 2 euler-vortex.pyfrm .
Traceback (most recent call last):
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/bin/pyfr", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 124, in main
    args.process(args)
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 187, in process_partition
    raise RuntimeError('No partitioners available')

Please apply:

and recompile METIS.

Regards, Freddie.

Thanks! Now, the partitioning works.

For parallel computing, I’ve install gcc 13.1.0 and the latest version of “libxsmm”.
path also included as PYFR_XSMM_LIBRARY_PATH=/path/to/libxsmm.so

But for the same example case, I got the following error after command for parallel computing.
mpiexec -n 2 pyfr -p run -b cuda euler-vortex.pyfrm euler-vortex.ini

Please let me know how I can fix this…
Thanks!

Traceback (most recent call last):
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/bin/pyfr", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 124, in main
    args.process(args)
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 258, in process_run
    _process_common(
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 240, in _process_common
    rallocs = get_rank_allocation(mesh, cfg)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/rank_allocator.py", line 12, in get_rank_allocation
    return subclass_where(BaseRankAllocator, name=name)(mesh, cfg)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/rank_allocator.py", line 29, in __init__
    raise RuntimeError(f'Mesh has {nparts} partitions but running '
RuntimeError: Mesh has 2 partitions but running with 1 MPI ranks
Traceback (most recent call last):
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/bin/pyfr", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 124, in main
    args.process(args)
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 258, in process_run
    _process_common(
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/__main__.py", line 240, in _process_common
    rallocs = get_rank_allocation(mesh, cfg)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/rank_allocator.py", line 12, in get_rank_allocation
    return subclass_where(BaseRankAllocator, name=name)(mesh, cfg)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yongsu/Research/CFD/PyFR/libxsmm/pyfr-venv/lib/python3.11/site-packages/pyfr/rank_allocator.py", line 29, in __init__
    raise RuntimeError(f'Mesh has {nparts} partitions but running '

This is likely an mpi4py problem. Please run mpiexec -np 3 python -c 'from mpi4py import MPI; print(MPI.COMM_WORLD.rank)'.

Regards, Freddie.

problem solved! thank you!