Differences between revisions 2 and 3
Revision 2 as of 2019-06-13 09:27:34
Size: 1623
Comment: Add remark on Docker performance overhead
Revision 3 as of 2020-07-27 15:28:00
Size: 1891
Editor: MalteHelmert
Comment: Clean up.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
/!\ Work in progress.
Line 23: Line 21:
Whereas Singularity always presents a very small overhead when compared to the native build, Docker sometimes shows runtime overheads of around 40%. In our tests, Singularity always caused a very small overhead when compared to the native build, Docker sometimes shows runtime overheads of around 40%.
Line 28: Line 26:
points in favour of Singularity: once Singularity is installed: trivial setup, no root privileges required, leaves no traces in the filesystem  * points in favour of Singularity over Docker:
   * once Singularity is installed, setup is trivial/non-existent
   * no root privileges needed
   * leaves no permanent traces on the machine: the planner is just a single file that can be used like a shell script with no dependencies or changes to the system
Line 30: Line 31:
mention different isolation models for Singularity and Docker

Docker: emphasis on deployment and composition of services

Singularity: emphasis on running scientific experiments
 * Singularity and Docker are made for different purposes and have different isolation models. If you care about security, it is good to be aware of what they do or don't do.
   * Docker: emphasis on deployment and composition of services
   * Singularity: emphasis on running scientific experiments

Back to QuickStart.

Run-time comparison

These are results of a very informal experiment (wall-clock time). Native OS and compilers identical to container versions (we think; can verify these later). Three runs each.

  • gripper prob01, blind search:
    • native build: 0.098 seconds, 0.101 seconds, 0.102 seconds
    • Singularity: 0.320 seconds, 0.350 seconds, 0.364 seconds
    • Docker: 1.124 seconds. 1.135 seconds, 1.203 seconds
    • Vagrant: 1.726 seconds, 1.736 seconds, 1.792 seconds
  • gripper prob07, blind search:
    • native build: 19.985 seconds, 20.082 seconds, 20.134 seconds
    • Singularity: 20.386 seconds, 20.488 seconds, 20.501 seconds
    • Docker: 26.841 seconds, 27.030 seconds, 26.623 seconds
    • Vagrant: 22.576 seconds, 22.616 seconds, 22.624 seconds

Vagrant results using "vagrant ssh -c". Most of the penalty over native build seems to be establishing the ssh connection. For Docker, we observed significantly different overheads when running similar tests on different machines. In our tests, Singularity always caused a very small overhead when compared to the native build, Docker sometimes shows runtime overheads of around 40%. Again, keep in mind that these are very informal tests.

Other notes

  • points in favour of Singularity over Docker:
    • once Singularity is installed, setup is trivial/non-existent
    • no root privileges needed
    • leaves no permanent traces on the machine: the planner is just a single file that can be used like a shell script with no dependencies or changes to the system
  • Singularity and Docker are made for different purposes and have different isolation models. If you care about security, it is good to be aware of what they do or don't do.
    • Docker: emphasis on deployment and composition of services
    • Singularity: emphasis on running scientific experiments

FastDownward: WhatFlavourIsForMe (last edited 2022-06-17 19:53:26 by MalteHelmert)