GithubHelp home page GithubHelp logo

stevenmburns / xycebuild Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 1.0 280 KB

License: BSD 3-Clause "New" or "Revised" License

Dockerfile 6.15% Shell 48.17% Gnuplot 31.05% SourcePawn 9.43% Python 5.21%

xycebuild's Introduction

Build Xyce

Copy the Xyce source tarball Xyce-7.1.tar.gz to this directory. (You can get this from https://xyce.sandia.gov/ after filling out a short form.)

tar xvfz Xyce-7.1.tar.gz
docker build -t stevenmburns/xyce .

The result of this build has been uploaded to docker hub. You can bypass this step and just download and use it.

Run Xyce Regression

Build a new image layer because we need python, numpy and scipy.

docker build -t xyce_regression -f Dockerfile.regression .

Copy the Xyce_Regression tarball Xyce_Regression-7.1.tar.gz to this directory. (Get this from https://xyce.sandia.gov/)

cat Xyce_Regression-7.1.tar.gz | docker run -i --mount source=regVol,target=/opt/Xyce/Test ubuntu bash -c "cd /opt/Xyce/Test && tar xvfz -"

docker run -it --mount source=regResultVol,target=/tmp/regResult --mount source=regVol,target=/opt/Xyce/Test xyce_regression bash -c 'cd /tmp && /opt/Xyce/Test/Xyce_Regression-7.1/TestScripts/run_xyce_regression --output=/tmp/regResult/Xyce_Test --xyce_test=/opt/Xyce/Test/Xyce_Regression-7.1 --resultfile=/tmp/regResult/serial_results --taglist="+serial+nightly?noverbose-verbose?klu?fft-library" /usr/local/bin/Xyce'

Run a simple test and extract from volume.

docker run -it --mount source=regVol,target=/opt/Xyce/Test stevenmburns/xyce bash -c 'cd /opt/Xyce/Test/Xyce_Regression-7.1/Netlists/RLC && /usr/local/bin/Xyce rlc.cir'

docker run --mount source=regVol,target=/opt/Xyce/Test ubuntu bash -c 'cd /opt/Xyce/Test/Xyce_Regression-7.1/Netlists/RLC && tar cvf - .' > Results.tar

Build a small image by extracting executable and shared libraries from original build

The stevenmburns/xyce image is 2.12GB. We can reduce its size to 127MB by copying the minimum that is needed out of the larger image. Here is one way to do this:

docker build -f Dockerfile.small.ubuntu -t stevenmburns/xyce_small_ubuntu .

using this docker file:

FROM stevenmburns/xyce as xyce

FROM ubuntu as xyce_small_ubuntu_alt

COPY --from=xyce /usr/local/bin/Xyce /usr/local/bin/
COPY --from=xyce /usr/lib/x86_64-linux-gnu/libfftw3.so.3 /usr/lib/x86_64-linux-gnu/libamd.so.2 /usr/lib/x86_64-linux-gnu/liblapack.so.3 /usr/lib/x86_64-linux-gnu/libblas.so.3 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so.5 /usr/lib/x86_64-linux-gnu/libgfortran.so.4 /usr/lib/x86_64-linux-gnu/libquadmath.so.0 /usr/lib/x86_64-linux-gnu/

This will generate the help message:

docker run -it stevenmburns/xyce_small_ubuntu bash -c "/usr/local/bin/Xyce --help"

xycebuild's People

Contributors

stevenmburns avatar parijatm avatar

Stargazers

Yuhang Song avatar Nikolay Frick avatar Pepijn de Vos avatar Jason Verley avatar  avatar

Watchers

 avatar

Forkers

nyancad

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.