eth-cscs / sarus

OCI-compatible engine to deploy Linux containers on HPC environments.
https://sarus.readthedocs.io/en/stable/
BSD 3-Clause "New" or "Revised" License
130 stars 10 forks source link

Comparison to other tools like singularity #22

Closed hhoeflin closed 3 years ago

hhoeflin commented 3 years ago

Hi,

I just found sarus by accident and it looks really interesting. In my experience, singularity has a lot of mindshare in the container on HPC space. I thought it would be great if you could add a section to the docs to talk about what sarus does differently from the other options available, e.g. like singularity.

Thanks

taliaga commented 3 years ago

Hi @hhoeflin ,

We're glad to hear from your interest. We strive to keep Sarus docs as clear and updated as possible, explaining what Sarus does and how it does its job, so that its unique characteristics are properly evidenced.

We're afraid keeping a comparison section with the rest of the HPC container tools would take away a significant amount of effort from our limited time. It is not an easy job, specially as it needs constant market research, testing and writing of updates. It would also risk creating wrong claims on the work of other members of our community, something we prefer to avoid altogether.

Thank you for understanding and please let us know should you have specific questions for which Sarus docs are not properly giving answers.

Best

hhoeflin commented 3 years ago

Thank you for your comment - I understand. I do a bit of open-source development myself and know of the constraints. And I was certainly not looking for a detailed comparison or anything. I read the docs, and not being an expert and only an interested enthusiast for container tech, I really couldn't tell why I would use Sarus over either Docker or Singularity. I just wanted to give this feedback as it would be a pity if good technological developments are overlooked in a crowded and complicated container tech landscape.

Keep up the good work.

ltalirz commented 3 years ago

I just wanted to voice my opinion in support of the request by @hhoeflin as well as his concerns.

I cannot claim to be a HPC expert but having talked to many developers of HPC software, my impression is that most of them have never heard of Sarus, while many are aware of docker and singularity, with some awareness of other approaches like shifter or Nvidia's container runtime.

Given that Sarus is not going to be the first container solution that people learn about, the question "What sets Sarus apart from other solutions?" will be the very first thing on their mind when they hear of Sarus. I think it is therefore very much in the interest of the Sarus project to provide an answer to that question that "computes" also for those who don't belong to the small group of HPC container experts.

While I personally consider this to be a case where a direct comparison with other approaches (along fair & objective criteria) is warranted, there are also other avenues for achieving a similar outcome, such as formulating your "key features" in a way that clearly set Sarus apart.

Key features

Here are some, hopefully contructive, comments/questions that might help you move the current list of "Key features" from the docs in this direction:

Spawning of isolated software environments (containers), built by users to fit the deployment of a specific application

Sarus is a container engine, so this point seems self-evident and can be dropped.

Security oriented to HPC systems

What does this mean? Be specific and mention how it differs from other solutions (even if you don't want to name them)

Extensible runtime by means of OCI hooks to allow current and future support of custom hardware while achieving native performance

I think this goes in the right direction but I would start with "Native performance due to ...". It is not clear whether OCI hooks are a unique feature of Sarus - do other container engines offer this as well? What is it about OCI hooks that makes them more performant than other choices?

Creation of container filesystems tailored for diskless nodes and parallel filesystems

This could be split into two points - (1) performant access to parallel filesystems (by the way, how does this compare to singularity, which can access the parallel file system directly as far as I understand?), and (2) diskless nodes. What is the problem other solutions have with diskless nodes that Sarus solves? Why are diskless nodes important?

Compatibility with the presence of a workload manager

What does this mean?

Finally, you may want to start your list of key features with the one you consider the most important reason why people might want to switch to Sarus, and then go to successively less important features.

taliaga commented 2 years ago

Thanks @ltalirz, your feedback is much appreciated. We'll look into how to integrate it and make the answers to the questions more evident in the docs.