GNU/Linux >> LINUX-Kenntnisse >  >> Linux

docker, openmpi und unerwartetes Ende der /proc/mounts-Zeile

Dies liegt wahrscheinlich an Ihrem /proc/mount Datei, die eine Zeile enthält, die länger als 512 Zeichen ist, was dazu führt, dass das hwloc-Modul von OpenMPI sie nicht korrekt analysieren kann. Docker neigt dazu, sehr lange Zeilen in /proc/mounts einzufügen . Sie können den Fehler in openmpi-1.10.7/opal/mca/hwloc/hwloc191/hwloc/src/topology-linux.c:1677 sehen :

static void
hwloc_find_linux_cpuset_mntpnt(char **cgroup_mntpnt, char **cpuset_mntpnt, int fsroot_fd)
{
#define PROC_MOUNT_LINE_LEN 512
  char line[PROC_MOUNT_LINE_LEN];
  FILE *fd;

  *cgroup_mntpnt = NULL;
  *cpuset_mntpnt = NULL;

  /* ideally we should use setmntent, getmntent, hasmntopt and endmntent,
   * but they do not support fsroot_fd.
   */

  fd = hwloc_fopen("/proc/mounts", "r", fsroot_fd);
  if (!fd)
    return;

Dies kann behoben werden, indem der Wert von PROC_MOUNT_LINE_LEN erhöht wird , obwohl dies als vorübergehende Problemumgehung betrachtet werden sollte.


Dieses Problem sollte in hwloc seit 1.11.3 (veröffentlicht vor 2 Jahren) behoben sein. Sie können entweder auf OpenMPI 3.0 upgraden, das ein hwloc 1.11.7>=1.11.3 enthält. Oder kompilieren Sie OpenMPI neu, um ein externes hwloc anstelle des alten eingebetteten zu verwenden.


Linux
  1. /proc/[pid]/pagemaps und /proc/[pid]/maps | Linux

  2. Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

  3. Aktualisieren von Docker auf Amazon Linux AMI

  4. Wie finde ich heraus, aus welchem ​​Ordner ein Prozess läuft?

  5. Unterschied zwischen /bin und /usr/bin

/proc/cpuinfo- und /proc/meminfo-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0

Kernel:/dev/kmem und /dev/mem deaktivieren

Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?