easybuilders / easybuild-framework

EasyBuild is a software installation framework in Python that allows you to install software in a structured and robust way.
https://easybuild.io
GNU General Public License v2.0
148 stars 200 forks source link

come up with a better quick demo #442

Open boegel opened 11 years ago

boegel commented 11 years ago

Currently, building the goalf toolchain and subsequently building HPL with it is our current 'quick' demo.

It has a couple of problems, i.e.:

JensTimmerman commented 11 years ago

I propose this list in order of changes of problems:

  1. very simple testcase: a tarball: Java
  2. simple testcase: gzip with a dummy toolchain
  3. testcase: gompi
  4. build toolchain: goolf
  5. package with no dependencies: gzip with goolf
  6. package with dependencies dolfin
  7. package with os dependencies: ?

we could make this the demo, people can choose how far the are willing to go in the process. (depending on their needs)

stdweird commented 11 years ago

the default and advertised demo should do a full toolchain build and install some piece of software that does something. 1 and 2 should be examples of what EB also supports, but have almost no added value to promote EB.

for item 4: toolchain to use should be goolf (openblas build is < 10 minutes on my laptop, and this includes a regtest). for reference, on my laptop GCC from scratch (ie incl source download) takes approx 30minutes

[stdweird@localhost ((unknown)) ~]$ head -2 $EBROOTGCC/easybuild/easybuild-GCC-4.6.3-20130103.223606.log 
== 2013-01-03 22:36:06,475 main.EB_GCC INFO Log initialized with name GCC version 4.6.3 to file /tmp/easybuild-GCC-4.6.3-20130103.223606.log on host localhost.localdomain
== 2013-01-03 22:36:06,475 main.EB_GCC INFO This is EasyBuild 1.1.0dev (framework: 1.1.0dev, easyblocks: 1.1.0dev)
[stdweird@localhost ((unknown)) ~]$ tail -2 $EBROOTGCC/easybuild/easybuild-GCC-4.6.3-20130103.223606.log 
== 2013-01-03 23:08:08,939 main.main INFO Collecting build stats...
== 2013-01-03 23:08:08,975 main.EB_GCC INFO Closing log for application name GCC version 4.6.3

a demo under 1 hour on recent system should be fine. if you are truly impatient, we'll put an edited screencast on youtube ;)

fgeorgatos commented 11 years ago

As regards the following, I think it is mostly doable for v1.2:

1. very simple testcase: a tarball: Java
2. simple testcase: gzip with a dummy toolchain
3. testcase: gompi
4. build toolchain: goolf
5. package with no dependencies: gzip with goolf
6. package with dependencies dolfin
7. package with os dependencies: ?

Here is a suggestion as a 3rd party, for a progressive way to learn EasyBuild's ins & outs:

  1. I suggest ABINIT, because it's simple, but not so simple that it is irrelevant: https://github.com/hpcugent/easybuild-easyconfigs/blob/develop/easybuild/easyconfigs/a/ABINIT/ABINIT-7.0.5-x86_64_linux_gnu4.5.eb # bbcp-12.01.30.00.0-amd64-linux26.eb is also interesting and smaller tarball
  2. Ken was interested in this & I also think that PCC or TCC would be suitable toys - ask for the PR, if you like it: https://github.com/fgeorgatos/easybuild.experimental/blob/master/users/fgeorgatos/extras/PCC-1.0.eb https://github.com/fgeorgatos/easybuild.experimental/blob/master/users/fgeorgatos/extras/TCC-0.9.25.eb
    • Until this point you should have success on any system with python running, including MacOSX (checked)
    • EasyBlocks kick-in below so you get exposed to more complex failure modes, too.
  3. I think FFTW-3.3.1-gompi-1.1.0-no-OFED.eb is the right kind of item here, along with some eb --try-toolchain=gompi zlib-1.2.7-goalf-1.1.0-no-OFED.eb # most people would start getting a feeling of the features here
  4. AS-IS: goolf!
  5. CMake-2.8.4-go?lf-1.1.0-no-OFED.eb (or R?) would be great AND useful for most sysadmins
  6. Avoid DOLFIN due to the MTL4 annoyance; Rather pick WRF-3.3.1-go?lf-1.1.0-no-OFED-dmpar.eb; The latter 1 has been proven reliable over many releases # at this point, people should start bowing in respect
  7. The best thing at this stage is to initiate massive parallel builds - that really kicks the tyres of your system
fgeorgatos commented 11 years ago

oops, just realized that without goolf, it's a bummer for steps 4 onwards, and we don't have that yet for v1.2.. OK.

fgeorgatos commented 11 years ago
  1. ABINIT & bbcp
  2. PCC or TCC
  3. gompi # this is critical to be done as separate step for beginners, because you may need to tune the result!
  4. goolf
  5. Either R or another package that promotes its version regularly, with --try-version
  6. w/WRF/3.3.1-goolf-1.4.10-dmpar # first build of some complexity
  7. petsc4py # if you arrive here, you are at a good stage for a beginner and need to start exploring...
boegel commented 10 years ago

PR for TCC (and co) is available at https://github.com/hpcugent/easybuild-easyconfigs/pull/486, that could be a first start for a better toolchain for the quick demo and for use in tutorial sessions, etc.