Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

come up with a better quick demo #442

Open
boegel opened this issue Jan 28, 2013 · 6 comments
Open

come up with a better quick demo #442

boegel opened this issue Jan 28, 2013 · 6 comments

Comments

@boegel
Copy link
Member

boegel commented Jan 28, 2013

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

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

  • it's not quick: building GCC takes about an hour, building ATLAS may take a lot longer
  • building ATLAS on a VM tends to fail, depending on the VM
  • older versions of ATLAS (e.g. v3.8.4 being used in goalf-1.1.0-no-OFED) do not support new architectures, e.g. Sandy Bridge
@JensTimmerman
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Collaborator

  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
Copy link
Member Author

boegel commented Oct 26, 2013

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

@boegel boegel modified the milestone: v1.X Jun 24, 2015
@boegel boegel modified the milestone: 3.x May 2, 2017
@boegel boegel modified the milestones: 3.x, 4.x Feb 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants