Skip to content

Commit ad82e29

Browse files
committed
update slide deck 1
1 parent bdaf97b commit ad82e29

1 file changed

Lines changed: 56 additions & 56 deletions

File tree

docs/udocker/udocker-01.md

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -419,67 +419,66 @@ The created container can be run as many times as you wish.
419419
## `udocker`: Execution engines I
420420

421421
* Like in other container tools execution is achieved by providing `chroot` like functionality.
422-
* `udocker` supports several techniques to achieve the equivalent to a chroot without using privileges.
422+
* `udocker` supports several techniques to achieve the equivalent to a `chroot` without using privileges.
423423
* These techniques can be selected per container via execution modes implemented by execution engines.
424424

425425
---
426426

427427
## `udocker`: Execution engines II
428428

429-
| Mode | Base | Description |
430-
| :---: | :---------: | :---------: |
431-
| P1 | PRoot | PTRACE accelerated (with SECCOMP filtering): *DEFAULT* |
432-
| P2 | PRoot | PTRACE non-accelerated (without SECCOMP filtering) |
433-
| R1 | runC | rootless unprivileged using user namespaces |
434-
| R2 | runC | rootless unprivileged using user namespaces + P1 |
435-
| R3 | runC | rootless unprivileged using user namespaces + P2 |
436-
| F1 | Fakechroot | with loader as argument and LD_LIBRARY_PATH |
429+
| Mode | Base | Description |
430+
| :---: | :---------: | :----------------------------------------------------------: |
431+
| P1 | PRoot | PTRACE accelerated (with SECCOMP filtering): *DEFAULT* |
432+
| P2 | PRoot | PTRACE non-accelerated (without SECCOMP filtering) |
433+
| R1 | runC | rootless unprivileged using user namespaces |
434+
| R2 | runC | rootless unprivileged using user namespaces + P1 |
435+
| R3 | runC | rootless unprivileged using user namespaces + P2 |
436+
| F1 | Fakechroot | with loader as argument and LD_LIBRARY_PATH |
437437
| F2 | Fakechroot | with modified loader, loader as argument and LD_LIBRARY_PATH |
438-
| F3 | Fakechroot | modified loader and ELF headers of binaries + libs changed |
439-
| F4 | Fakechroot | modified loader and ELF headers dynamically changed |
440-
| S1 | Singularity | where locally installed using chroot or user namespaces |
438+
| F3 | Fakechroot | modified loader and ELF headers of binaries + libs changed |
439+
| F4 | Fakechroot | modified loader and ELF headers dynamically changed |
440+
| S1 | Singularity | where locally installed using chroot or user namespaces |
441441

442442
---
443443

444444
## Selection in terms of performance
445445

446-
| Mode | Base | Description |
447-
| :---: | :---------: | :---------: |
448-
| P1 | PRoot | System call intensive applications may suffer degradation |
449-
| P2 | PRoot | Same limitations as P1 apply. All system calls are traced causing higher overheads than P1 |
450-
| R1 | runC | Same performance as namespace based applications |
451-
| R2 | runC | Only for software installation and similar. Same performance as P1 |
452-
| R3 | runC | Only for software installation and similar. Same performance as P2 |
446+
| Mode | Base | Description |
447+
| :---: | :---------: | :---------------------------------------------------------------------------------------------: |
448+
| P1 | PRoot | System call intensive applications may suffer degradation |
449+
| P2 | PRoot | Same limitations as P1 apply. All system calls are traced causing higher overheads than P1 |
450+
| R1 | runC | Same performance as namespace based applications |
451+
| R2 | runC | Only for software installation and similar. Same performance as P1 |
452+
| R3 | runC | Only for software installation and similar. Same performance as P2 |
453453
| F1 | Fakechroot | All Fn modes have similar performance during execution. Frequently the Fn modes are the fastest |
454-
| F2 | Fakechroot | Same as F1 |
455-
| F3 | Fakechroot | Same as F1. Setup can be very slow |
456-
| F4 | Fakechroot | Same as F1. Setup can be very slow |
457-
| S1 | Singularity | Similar to Rn |
454+
| F2 | Fakechroot | Same as F1 |
455+
| F3 | Fakechroot | Same as F1. Setup can be very slow |
456+
| F4 | Fakechroot | Same as F1. Setup can be very slow |
457+
| S1 | Singularity | Similar to Rn |
458458

459459
---
460460

461461
## Selection in terms of interoperability I
462462

463-
| Mode | Base | Description |
464-
| :---: | :---------: | :---------: |
465-
| P1 | PRoot | PTRACE + SECCOMP requires kernel >= 3.5. Can fall back to P2 if SECCOMP is unavailable |
463+
| Mode | Base | Description |
464+
| :---: | :---------: | :-----------------------------------------------------------------------------------------------------------------------: |
465+
| P1 | PRoot | PTRACE + SECCOMP requires kernel >= 3.5. Can fall back to P2 if SECCOMP is unavailable |
466466
| P2 | PRoot | Runs across a wide range of kernels even old ones. Can run with kernels and libraries that would fail with kernel too old |
467-
| R1 | runC | User namespace limitations apply |
468-
| R2 | runC | User namespace limitations apply. Same limitations as P1 also apply, this is a nested mode P1 over R |
469-
| R3 | runC | User namespace limitations apply. Same limitations as P2 also apply, this is a nested mode P2 over R |
470-
467+
| R1 | runC | User namespace limitations apply |
468+
| R2 | runC | User namespace limitations apply. Same limitations as P1 also apply, this is a nested mode P1 over R |
469+
| R3 | runC | User namespace limitations apply. Same limitations as P2 also apply, this is a nested mode P2 over R |
471470

472471
---
473472

474473
## Selection in terms of interoperability II
475474

476-
| Mode | Base | Description |
477-
| :---: | :---------: | :---------: |
475+
| Mode | Base | Description |
476+
| :---: | :---------: | :----------------------------------------------------------------------------------------------------: |
478477
| F1 | Fakechroot | May escape and load host libraries. Requires shared library compiled against same libc as in container |
479-
| F2 | Fakechroot | Same as F1 |
478+
| F2 | Fakechroot | Same as F1 |
480479
| F3 | Fakechroot | Requires shared library compiled against same libc as in container. Binary executables and libraries get tied to the user HOME pathname |
481-
| F4 | Fakechroot | Same as F3. Executables and libraries can be compiled or added dynamically |
482-
| S1 | Singularity | Not part of `udocker` must already exist on the system, may use user namespaces or chroot |
480+
| F4 | Fakechroot | Same as F3. Executables and libraries can be compiled or added dynamically |
481+
| S1 | Singularity | Not part of `udocker` must already exist on the system, may use user namespaces or chroot |
483482

484483
---
485484

@@ -491,23 +490,23 @@ The created container can be run as many times as you wish.
491490

492491
## `udocker` & Lattice QCD
493492

494-
OpenQCD is a very advanced code to run lattice simulations
493+
OpenQCD is a very advanced code to run lattice simulations.
495494

496495
Scaling performance as a function of the cores for the computation of application of the Dirac operator to a spinor field.
497496

498-
Using OpenMPI, `udocker` in P1 mode
497+
Using OpenMPI, `udocker` in P1 mode.
499498

500499
![bg right:40% w:550px](imgs/scaling.png)
501500

502501
---
503502

504-
## `udocker` & `udocker` & Molecular dynamics
503+
## `udocker` & Molecular dynamics
505504

506-
Gromacs is widely used both in biochemical and non-biochemical systems.
505+
Gromacs is widely used both in biochemical and non-biochemical systems.
507506

508-
In this comparison Gromacs was run using CUDA and OpenMP
507+
In this comparison Gromacs was run using CUDA and OpenMP:
509508

510-
* `udocker` using P mode has lower performance with Gromacs
509+
* `udocker` using P mode has lower performance with Gromacs.
511510
* `udocker` using F mode has same or better performance as Docker.
512511

513512
![bg right:50% w:700px](imgs/ratio-gromacs.png)
@@ -516,17 +515,22 @@ In this comparison Gromacs was run using CUDA and OpenMP
516515

517516
## `udocker` & Phenomenology
518517

519-
MasterCode connects several complex codes. Hard to deploy. Scanning through large parameter spaces. High Throughput Computing.
518+
MasterCode connects several complex codes:
519+
520+
* Hard to deploy.
521+
* Scanning through large parameter spaces.
522+
* High Throughput Computing.
523+
* C++, Fortran, many authors, legacy code.
520524

521-
C++, Fortran, many authors, legacy code. Performance Degradation (*udocker in P1 mode*)
525+
Performance Degradation (*udocker in P1 mode*)
522526

523527
| Environment | Compiling | Running |
524528
| :---------: | :-------: | :-----: |
525-
| HOST | 0% | 0% |
526-
| DOCKER | 10% | 1.0% |
527-
| udocker | 7% | 1.3% |
528-
| VirtualBox | 15% | 1.6% |
529-
| KVM | 5% | 2.6% |
529+
| HOST | 0% | 0% |
530+
| DOCKER | 10% | 1.0% |
531+
| udocker | 7% | 1.3% |
532+
| VirtualBox | 15% | 1.6% |
533+
| KVM | 5% | 2.6% |
530534

531535
---
532536

@@ -551,11 +555,7 @@ C++, Fortran, many authors, legacy code. Performance Degradation (*udocker in P1
551555

552556
## Other container technologies
553557

554-
* Singularity (LBL) - `udocker` currently supports it as execution mode
555-
556-
* Charliecloud (LANL) - devels contacted Jorge: can `udocker` have a mode for it?
557-
"Merge" the `udocker`, CLI functionality with underlying Charliecloud engine?
558-
559-
* Shifter (NERSC) - at the moment no plans on any type of usage/integration in `udocker`.
560-
561-
* Podman (RedHat)
558+
* Singularity/Apptainer (LBL) <https://apptainer.org/> - `udocker` currently supports it as execution mode.
559+
* Charliecloud (LANL) <https://charliecloud.io/>.
560+
* Shifter (NERSC) <https://docs.nersc.gov/development/containers/shifter/how-to-use/>.
561+
* Podman (RedHat) <https://www.redhat.com/en/topics/containers/what-is-podman>.

0 commit comments

Comments
 (0)