Grid5000:Gotchas: Difference between revisions

From Grid5000
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
{{Maintainer|Lucas Nussbaum}}
{{Maintainer|Lucas Nussbaum}}
{{Portal|User}}
{{Portal|User}}
{{Note|text=For a more upto-date list of Gotchas, see https://www.grid5000.fr/status/artifact/}}
{{Note|text=For a more up to-date list of Gotchas, see https://www.grid5000.fr/status/artifact/}}
This page documents various [http://en.wikipedia.org/wiki/Gotcha_(programming) ''gotchas''] (counter-intuitive features of Grid'5000) that could affect users' experiments in surprising ways.
This page documents various [http://en.wikipedia.org/wiki/Gotcha_(programming) ''gotchas''] (counter-intuitive features of Grid'5000) that could affect users' experiments in surprising ways.


== Network ==
== Network ==
Global and per sites network documentation can be found on [[Grid5000:Network]] page.
=== Topology of ethernet networks ===
=== Topology of ethernet networks ===
Most (large) clusters have a hierarchical ethernet topology, because ethernet switchs with a large number of ports are too expensive. A good example of such a hierarchical topology is the [[Rennes:Network]] for the paravance and parasilo clusters, where nodes are  connected to 3 different switches. When doing experiments using the ethernet network intensively, it is a good idea to request nodes on the same switch, using e.g <tt>oarsub -l switch=1/nodes=5</tt>, or to request nodes connected to specific switch using e.g <tt>oarsub -p "switch='cisco2'" -l nodes=5</tt>.
Most (large) clusters have a hierarchical ethernet topology, because ethernet switchs with a large number of ports are too expensive. A good example of such a hierarchical topology is the [[Rennes:Network]] for the paravance and parasilo clusters, where nodes are  connected to 3 different switches. When doing experiments using the ethernet network intensively, it is a good idea to request nodes on the same switch, using e.g <tt>oarsub -l switch=1/nodes=5</tt>, or to request nodes connected to specific switch using e.g <tt>oarsub -p "switch='cisco2'" -l nodes=5</tt>.


Line 13: Line 17:


=== High-performance networks ===
=== High-performance networks ===
The topology of Infiniband networks is generally less surprising, and many of them are non-blocking (the switch can handle the total bandwidth of all ports simultaneously). However, there are some exceptions :
The topology of Infiniband and Omni-Path networks is generally less surprising, two "fat-tree" topologies can be found on the testbed:
* the Infiniband network in Grenoble is hierarchical (see [[Grenoble:Network]]).
* non-blocking (''1:1'') : the number of up-link ports (from leaf switches to top switches) is equal to the number of down-link ports (nodes to leaf switches). Like that, all the nodes can communicate with each others at full-speed.
* in nancy, graphene-144 is connected to the griffon infiniband switch. This was required in order to free a port on the graphene switch, used to connect the two infiniband switchs together. This can impact the performance of your application if you are using all 144 graphene nodes.
* blocking (''2:1''): the number of up-link ports (from leaf switches to top switches) is half the number of down-link ports (nodes to leaf switches). Like that, nodes from the same leaf switch can communicate to each other at full speed, but not with nodes from others leaf switches.


== Compute nodes ==
== Compute nodes ==
All Grid'5000 clusters are supposed to contain homogeneous (identical) sets of nodes, but there are some exceptions.
All Grid'5000 clusters are supposed to contain homogeneous (identical) sets of nodes, but there are some exceptions.
Global and per sites cluster documentation can be found on [[Hardware]] page.
=== Hard disks ===
=== Hard disks ===
Due to their high failure rate, hard disks tend to get replaced frequently, and it is not always possible to keep the same model during the whole life of a cluster. If this is important to you, please check exact disk model using the reference API, as storage is described in detail for each node.
Due to their high failure rate, hard disks tend to get replaced frequently, and it is not always possible to keep the same model during the whole life of a cluster. If this is important to you, please check exact disk model using the reference API, as storage is described in detail for each node.


=== Different disks in the Grenoble edel cluster ===
== Software ==
Disks of the Grenoble edel clusters come in two different size : 128 and 64 GB. Disks size is limited to 64 GB on all nodes. To use additional space, you can refer to [[Advanced_Kadeploy#Use_disk.28s.29_as_I_want]].
* The standard environment (the one users get when not deploying) on all compute nodes is identical for a given architecture (x86-64 or arm64), with the exception of additional drivers and software to support GPUs and High Speed networks on sites where they are available.
* 46 disks of 128GB : 1, 5-6, 8-9, 12, 15-16, 19, 21, 23-25, 27-29, 32, 35, 37, 39-43, 45-46, 48-50, 52, 55-57, 59, 61-63, 65-72
* The user frontend are identical on all sites.
* 26 disks of 64GB : 2-4, 7, 10-11, 13-14, 17-18, 20, 22, 26, 30-31, 33-34, 36, 38, 44, 47, 51, 53, 58, 60, 64
* The reference environments (*-$arch-{min,base,nfs,xen,big}) are identical on all sites, for a given architecture.


=== Some Lyon's sagittaire nodes have different hardware than others ===
Regarding CPU architectures, some differences can be found in environments:
Sagittaire nodes 70 to 79 are not identical to others: They have two disk (2x73 GB) and 16 GiB of RAM.


== Software ==
{| class="wikitable"
* The standard environment (the one users get when not deploying) on all compute nodes is identical, with the exception of additional drivers and software to support GPUs and Infiniband networks on sites where they are available.
|-
* The user frontend are identical on all sites.
! scope="col"| Feature
* The reference environments (*-x64-{min,base,nfs,xen,big}) are identical on all sites.
! scope="col"| x86-64
! scope="col"| arm64
! scope="col"| env
|-
! scope="row"| Infiniband
| {{Yes}}
| {{Yes}}
| ''base''
|-
! scope="row"| OmniPath
| {{Yes}}
| {{No}}
| ''base''
|-
! scope="row"| NFS
| {{Yes}}
| {{Yes}}
| ''nfs''
|-
! scope="row"| Ceph
| {{Yes}}
| {{Yes}}
| ''nfs''
|-
! scope="row"| Xen Dom0
| {{Yes}}
| {{Yes}}
| ''xen''
|-
! scope="row"| Cuda
| {{Yes}}
| {{No}}
| ''big''
|-
! scope="row" | BeegFS
| {{Yes}}
| {{No}}
| ''big''
|-
! scope="row" | OpemMPI
| {{Yes}}
| {{Yes}}
| ''big''
|}

Revision as of 18:05, 3 July 2020

Note.png Note

For a more up to-date list of Gotchas, see https://www.grid5000.fr/status/artifact/

This page documents various gotchas (counter-intuitive features of Grid'5000) that could affect users' experiments in surprising ways.

Network

Global and per sites network documentation can be found on Grid5000:Network page.

Topology of ethernet networks

Most (large) clusters have a hierarchical ethernet topology, because ethernet switchs with a large number of ports are too expensive. A good example of such a hierarchical topology is the Rennes:Network for the paravance and parasilo clusters, where nodes are connected to 3 different switches. When doing experiments using the ethernet network intensively, it is a good idea to request nodes on the same switch, using e.g oarsub -l switch=1/nodes=5, or to request nodes connected to specific switch using e.g oarsub -p "switch='cisco2'" -l nodes=5.

Performance of ethernet networks

The backplane bandwidth of ethernet switches doesn't usually allow full-speed communications between all the ports of the switch.

High-performance networks

The topology of Infiniband and Omni-Path networks is generally less surprising, two "fat-tree" topologies can be found on the testbed:

  • non-blocking (1:1) : the number of up-link ports (from leaf switches to top switches) is equal to the number of down-link ports (nodes to leaf switches). Like that, all the nodes can communicate with each others at full-speed.
  • blocking (2:1): the number of up-link ports (from leaf switches to top switches) is half the number of down-link ports (nodes to leaf switches). Like that, nodes from the same leaf switch can communicate to each other at full speed, but not with nodes from others leaf switches.

Compute nodes

All Grid'5000 clusters are supposed to contain homogeneous (identical) sets of nodes, but there are some exceptions.

Global and per sites cluster documentation can be found on Hardware page.

Hard disks

Due to their high failure rate, hard disks tend to get replaced frequently, and it is not always possible to keep the same model during the whole life of a cluster. If this is important to you, please check exact disk model using the reference API, as storage is described in detail for each node.

Software

  • The standard environment (the one users get when not deploying) on all compute nodes is identical for a given architecture (x86-64 or arm64), with the exception of additional drivers and software to support GPUs and High Speed networks on sites where they are available.
  • The user frontend are identical on all sites.
  • The reference environments (*-$arch-{min,base,nfs,xen,big}) are identical on all sites, for a given architecture.

Regarding CPU architectures, some differences can be found in environments:

Feature x86-64 arm64 env
Infiniband Check.png Check.png base
OmniPath Check.png Fail.png base
NFS Check.png Check.png nfs
Ceph Check.png Check.png nfs
Xen Dom0 Check.png Check.png xen
Cuda Check.png Fail.png big
BeegFS Check.png Fail.png big
OpemMPI Check.png Check.png big