known-problems.md

This commit is contained in:
caubet_m 2020-12-24 11:09:01 +01:00
parent 82cb4edb53
commit 07463d7a9e

View File

@ -10,33 +10,63 @@ permalink: /merlin6/known-problems.html
## Known Problems Summary
| Topic |
|:--------------------------------------------------------- |
| [Paraview](## Paraview, ANSYS and OpenGL) |
| [ANSYS](## Paraview, ANSYS and OpenGL) |
| [Illegal instructions error](## Illegal instructions) |
| Topic |
|:----------------------------------------------------------------------------------------- |
| [OpenGL vs Mesa](/merlin6/known-problems.html#opengl-vs-mesa) |
| [Paraview](/merlin6/known-problems.html#OpenGL) |
| [ANSYS](/merlin6/known-problems.html#opengl-support-paraview-ansys-etc) |
| [Illegal instructions error](i/merlin6/known-problems.html#illegal-instructions) |
## Paraview, ANSYS and OpenGL
## OpenGL vs Mesa
Try to use X11(mesa) driver for Paraview and ANSYS instead of OpenGL:
Some applications can run with OpenGL support. This is only possible when the node contains a GPU card.
In general, X11 with Mesa Driver is the recommended method as it will work in all cases (no need of GPUs). In example, for ParaView:
```bash
module load paraview
paraview-mesa paraview # 'paraview --mesa' for old releases
```
However, if one needs to run with OpenGL support, this is still possible by running `vglrun`. Officially, the supported method is
NoMachine remote desktop (SSH with X11 Forwarding is slow, but also needs to properly setup the client -desktop or laptop-, where
Merlin admins have no access or rights to it). In example, for running Paraview:
```bash
module load paraview
vglrun paraview
```
## ANSYS
Sometimes, running ANSYS/Fluent requires X11 support. For that, one should run fluent as follows.
```bash
# ANSYS
module load ANSYS
fluent -driver x11
```
# ParaView
## Paraview
For running Paraview, one can run it with Mesa support or OpenGL support.
```bash
module load paraview
paraview --mesa
# Run with Mesa support (nodes without GPU)
paraview-mesa paraview # 'paraview --mesa' for old releases
# Run with OpenGL support (nodes with GPU)
vglrun paraview
```
## Illegal instructions
It may happened that your code, compiled on one machine will not be executed on another throwing exception like "(Illegal instruction)".
Check (with "hostname" command) on which of the node you are and compare it with the names from first item. We observe few applications
that can't be run on merlin-c-01..16 because of this problem (notice that these machines are more then 5 years old). Hint: you may
choose the particular flavour of the machines for your slurm job, check the "--cores-per-node" option for sbatch:
It may happened that your code, compiled on one machine will not be executed on another throwing exception like **"(Illegal instruction)"**.
This is usually because the software was compiled with a set of instructions newer than the ones available in the node where the software runs,
and it mostly depends on the processor generation.
```bash
sbatch --cores-per-socket=8 Script.sh # will filter the selection of the machine and exclude the oldest one, merlin-c-01..16
```
In example, `merlin-l-001` and `merlin-l-002` contain a newer generation of processors than the old GPUs nodes, or than the Merlin5 cluster.
Hence, unless one compiles the software with compatibility with set of instructions from older processors, it will not run on old nodes.
Sometimes, this is properly set by default at the compilation time, but sometimes is not.
For GCC, please refer to https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html for compiling options. In case of doubts, contact us.