limerainne / Dockerize-EDA

[WIP] Dockerize Synopsys/Cadence EDA tools
80 stars 24 forks source link

Integration among different tools #7

Open limerainne opened 5 years ago

limerainne commented 5 years ago

Because each tool is isolated from others, integration among tools cannot be happened. :(

e.g.

The problem is, containers can communicate each other only with port.. (Sharing tool files through (mounted) user directory seems weird...)

Is there any way to integrate among different tools regarding isolated containers? No way...

limerainne commented 5 years ago

Dull way no. 1: Share tool files from other container with SSHFS

If the integration required is actually only one tool can read/execute other tools, just using SSHFS or other remote file systems to enable file read would be sufficient.

Hmm?

limerainne commented 5 years ago

Dull way no. 2: Place common shared libraries inside Linux OS container only, manage EDA tools in different way e.g. bind path

Actually, placing actual EDA tool files inside container is not necessary for executing that tool. (See my Dockerfile that just copying tool directory from installer container)

Having tool files inside container benefits only for:

Hence, preparing just common OS image (regarding required library versions) and attaching directories of tools to be executed when running container is the better way to handle integration issue. Also, this concept can avoid duplicated base OS image in virtualization tools not supporting multi layered image, such as Singularity.

limerainne commented 4 years ago

Seems that Synopsys already was using way no. 2.

From the description of Synopsys Container,

A Synopsys container has OS libraries and other dependencies that minimize the possibility of failure due to missing dependencies at run-time. This is especially useful for running applications on heterogeneous clients or in a cloud environment.

Many Linux-based Synopsys tools are enabled to access a Synopsys container. (The tools do not reside in the container but can access it.) CentOS or RHEL 7.x is recommended; SUSE SLES 12.x is also supported.

Using a Synopsys container provides the following benefits:

  • A consistent, controlled runtime environment
  • The correct version of required OS libraries and other dependencies
  • The ability to run application on heterogeneous host machines

I'm doomed :)