---
title: Known Problems
#tags:
#keywords:
last_updated: 21 January 2021
#summary: ""
sidebar: merlin6_sidebar
permalink: /merlin6/known-problems.html
---

## Known Problems Summary

| Topic                                                                                      |
|:-----------------------------------------------------------------------------------------  |
| [Default Shell](/merlin6/known-problems.html#default-shell)                                |
| [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)           |

## Default SHELL

In general, **`/bin/bash` is the recommended default user's SHELL** when working in Merlin.

Some users might notice that BASH is not the default SHELL when login to Merlin systems, or they might need to run a different SHELL. 
This is probably because when the PSI account was requested, no SHELL description was specified or a different one was requested explicitly by the requestor.
Users can check which is the default SHELL specified in the PSI account with the following command:

```bash
getent passwd $USER | awk -F: '{print $NF}'
```

If SHELL does not correspond to the one you need to use, you should request a central change for it. 
This is because Merlin accounts are central PSI accounts. Hence, **change must be requested via [PSI Service Now](/merlin6/contact.html#psi-service-now)**.

Alternatively, if you work on other PSI Linux systems but for Merlin you need a different SHELL type, a temporary change can be performed during login startup. 
You can update one of the following files:
* `~/.login`
* `~/.profile`
* Any `rc` or `profile` file in your home directory (i.e. `.cshrc`, `.bashrc`, `.bash_profile`, etc.)

with the following lines:

```bash
# Replace MY_SHELL with the bash type you need
MY_SHELL=/bin/bash
exec $MY_SHELL -l
```

Notice that available *shells* can be found in the following file: 

```bash
cat /etc/shells
```

## OpenGL vs Mesa

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
module load ANSYS
fluent -driver x11
```

## Paraview

For running Paraview, one can run it with Mesa support or OpenGL support.

```bash
module load paraview

# 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)"**.
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.

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.
