This service will be undergoing maintenance at 00:00 UTC, 2017-10-23 It is expected to last about 30 minutes
Bug 830869 - Review Request: hpl - A Portable Implementation of the High-Performance Linpack Benchmark
Review Request: hpl - A Portable Implementation of the High-Performance Linpa...
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Zbigniew Jędrzejewski-Szmek
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-11 10:38 EDT by Jaroslav Škarvada
Modified: 2017-02-06 23:33 EST (History)
8 users (show)

See Also:
Fixed In Version: hpl-2.1-10.fc20
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-05-15 14:43:59 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
zbyszek: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Jaroslav Škarvada 2012-06-11 10:38:10 EDT
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.0-1.fc18.src.rpm
Description: HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the High Performance Computing Linpack Benchmark.

Fedora Account System Username: jskarvad
Comment 1 Jaroslav Škarvada 2012-06-11 16:52:57 EDT
New version:
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.0-2.fc18.src.rpm
Comment 2 Susi Lehtola 2012-06-12 01:57:16 EDT
 %{_bindir}/*
 %{_datadir}/*
please don't use total wildcards. It isn't such a hassle to type in all the files, or at least limit the wildcard in a sane manner.

**

This package should also be built against OpenMPI. And you need to follow the MPI guidelines.
Comment 3 Jaroslav Škarvada 2013-05-29 09:14:55 EDT
(In reply to Susi Lehtola from comment #2)
Thanks for the hints, MPI packaging was deep water for me :) So hopefully I got it right now, any comments are welcome.

Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-1.fc18.src.rpm
Comment 4 Jason Tibbitts 2013-06-04 15:51:42 EDT
I'm slightly confused; does this not support serial mode at all (i.e. can it run without MPI)?  Also, I'm not seeing the -common package which the guidelines mandate.  (It does look like those guidelines, or at least the examples, need fixing now that we don't ship lam.)

I don't understand why you play sed games with _smp_mflags instead of just calling make without passing _smp_mflags.  What benefit is there from calling make -j1 instead of just calling make?  And even if there was something, why not then actually call make -j1 instead of cooking up a macro that does the same thing?
Comment 5 Jaroslav Škarvada 2013-06-17 09:49:15 EDT
(In reply to Jason Tibbitts from comment #4)
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-2.fc18.src.rpm

> I'm slightly confused; does this not support serial mode at all (i.e. can it
> run without MPI)?
I was not able to compile it without MPI, it seems to be mandatory. It would probably require more patching to make it optional.

> Also, I'm not seeing the -common package which the
> guidelines mandate.  (It does look like those guidelines, or at least the
> examples, need fixing now that we don't ship lam.)
Added.

> 
> I don't understand why you play sed games with _smp_mflags instead of just
> calling make without passing _smp_mflags.  What benefit is there from
> calling make -j1 instead of just calling make?  And even if there was
> something, why not then actually call make -j1 instead of cooking up a macro
> that does the same thing?
The most safe way to work with probably any _smp_mflags value, e.g. it would handle any possible future extensions of these flags. Maybe a bit over-engineered, so I made it simple as proposed.
Comment 6 Tobi R 2014-07-31 07:40:15 EDT
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-2.fc18.src.rpm

There is a need for this package I think, but trying to build the package gives me the following error message:

+ '%{_mpich2_load}'
/var/tmp/rpm-tmp.USB65J: line 54: fg: no job control
Comment 7 Jaroslav Škarvada 2014-07-31 07:55:32 EDT
(In reply to Tobi R from comment #6)
> Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
> SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-2.fc18.src.rpm
> 
> There is a need for this package I think, but trying to build the package
> gives me the following error message:
> 
> + '%{_mpich2_load}'
> /var/tmp/rpm-tmp.USB65J: line 54: fg: no job control

Interesting, it seems there is no more mpich2, but mpich-3*. Mpich2 is now dead package, from the dist-git:

> 2014-06-04 - This package was already retired in pkgdb/blocked in koji, but no dead.package file existed. The original retirement reason is unclear.

So this doesn't clarify what happen. There is still mpich2 used in the MPI packaging guidelines:

http://fedoraproject.org/wiki/Packaging:MPI

Could anybody clarify this and/or fix the guidelines? In the meantime I will try to rebuild the package with mpich-3*.
Comment 8 Jaroslav Škarvada 2014-07-31 08:08:49 EDT
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-3.fc20.src.rpm

Used mpich instead of mpich2. At least it builds now on f20, f22 :)

Could anybody take this review? Seriosly guys it's more than two years the request was filled. I am ready to trade it for another review.
Comment 9 Dave Love 2014-07-31 10:36:57 EDT
I was going to comment on this.  I can't give a formal review, and I'm
about to go on holiday, but there's an amended spec at
https://loveshack.fedorapeople.org/review/hpl.spec
in case it's useful.  It builds on at least epel-6-x86_64 and fedora-20-x86_64
and passes rpmlint.

Obviously a serial version makes no sense as it's a distributed benchmark.

If you use the packaged atlas rather than openblas on x86_64 -- at least
on sandybridge -- the results are a factor of 3-ish(?) pessimistic.  I can't
remember the actual figure.  Openblas/openmpi give you essentially the same
results as the Intel proprietary stuff -- hooray for free software.

A devel package doesn't make sense for the benchmark, surely.

[Fedora badly needs the Debian model for BLAS to avoid this sort of issue.]
Comment 10 Jaroslav Škarvada 2014-07-31 10:45:17 EDT
(In reply to Dave Love from comment #9)
> I was going to comment on this.  I can't give a formal review, and I'm
> about to go on holiday, but there's an amended spec at
> https://loveshack.fedorapeople.org/review/hpl.spec
>
Thanks, I will take a look and merge it.

No worry and enjoy your holiday, it was waiting for more than two years, it can surely wait for few more days :)
Comment 11 Christopher Heiny 2015-01-12 17:17:36 EST
What's the status/outlook on this?  It's something we could very much use in our work here.

Thanks!
Comment 13 Dave Love 2015-01-12 17:38:43 EST
In the absence of any progress, you can get rpms from
http://copr.fedoraproject.org/coprs/loveshack/livhpc/
Comment 14 Christopher Heiny 2015-01-13 19:54:14 EST
Thanks very much - that's a huge help!  And it looks like there's a lot more useful stuff in livhpc.
Comment 15 Dave Love 2015-01-14 06:35:54 EST
I realize that's one of a bunch of things I hadn't adjusted for the Great RHEL6.6
MPI Disaster.  There's an update which works in EPEL6 at
https://loveshack.fedorapeople.org/copr/hpl-2.1-4.el6.src.rpm
Comment 16 Jaroslav Škarvada 2015-01-14 06:54:01 EST
Hi, thanks and sorry for delay. I will provide new package for review during this week. But there is still no reviewer assigned, so feel free to step-in as a reviewer :)
Comment 17 Dave Love 2015-01-15 06:17:06 EST
> But there is still no reviewer assigned, so feel free to step-in
> as a reviewer :)

Sorry, I'm not qualified, and I can sympathize on reviews.

By the way, the reason I moved HPL.dat is that I think it's much more an example
than a system config file; I wouldn't expect hpl typically to be run with one
set of parameters.
Comment 18 Jaroslav Škarvada 2015-01-16 10:41:08 EST
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-4.fc21.src.rpm

Merged changes from Dave.

Again, reviewer wanted :) I am ready to trade this for other review(s).
Comment 19 Jaroslav Škarvada 2015-01-16 10:56:30 EST
(In reply to Dave Love from comment #17)
> By the way, the reason I moved HPL.dat is that I think it's much more an
> example
> than a system config file; I wouldn't expect hpl typically to be run with one
> set of parameters.

I didn't merge this change, because I am currently unsure about its benefit. I think it is good config for the start, and it's probably good it's present in the sysconfdir. It has noreplace, so it can be freely tuned. I think typical approach when running benchmark is to get initial config, run benchmark, analyze results, tune config, re-run benchmark, etc., until one is satisfied with the results.

This is my personal opinion, but feel free to share your opinions.
Comment 20 Dave Love 2015-01-19 08:33:49 EST
> I didn't merge this change, because I am currently unsure about its benefit.
> I think it is good config for the start, and it's probably good it's present
> in the sysconfdir. It has noreplace, so it can be freely tuned. I think
> typical approach when running benchmark is to get initial config, run
> benchmark, analyze results, tune config, re-run benchmark, etc., until one
> is satisfied with the results.
> 
> This is my personal opinion, but feel free to share your opinions.

OK!  I guess you use it differently.  It's not used with fixed input here, e.g. as
a convenient way of stressing a single node of varying memory size.  Also, it's
not obvious to me that it fits the definition for files in /etc in the FHS.

Obviously that's not important and it's irrelevant without a proper review.
Comment 21 Dave Love 2015-02-21 09:47:21 EST
The current version doesn't build, with 

error: Directory not found: /builddir/build/BUILDROOT/hpl-2.1-4.fc23.x86_64/etc/mpich-x86_64/hpl

etc.
Comment 22 Jaroslav Škarvada 2015-02-26 10:44:51 EST
(In reply to Dave Love from comment #21)
> The current version doesn't build, with 
> 
> error: Directory not found:
> /builddir/build/BUILDROOT/hpl-2.1-4.fc23.x86_64/etc/mpich-x86_64/hpl
> 
> etc.

Probably bug in mpich, reported as bug 1196728.
Comment 23 Orion Poplawski 2015-02-27 14:10:41 EST
Is HPL.dat really different between the two mpi versions of hpl?  I.e. - does it really belong in $MPI_SYSCONFIG?
Comment 24 Jaroslav Škarvada 2015-03-03 04:19:08 EST
(In reply to Orion Poplawski from comment #23)
> Is HPL.dat really different between the two mpi versions of hpl?  I.e. -
> does it really belong in $MPI_SYSCONFIG?

It seems that what we install is initially the same. I will update the package.
Comment 25 Jaroslav Škarvada 2015-03-03 04:41:29 EST
Finally I am putting the HPL.dat into /usr/share. It's more like example file.
Comment 27 Zbigniew Jędrzejewski-Szmek 2015-05-09 15:35:12 EDT
This package makes me quite happy, because it should be another good test of mpich and openmpi.

Without futher ado:

Please add %global _docdir_fmt %{name}. Currently hpl-common has files in /usr/share/doc/hpl-common which is confusing and unnecessary.

Documentation should be in an unversioned directory. 
[https://fedoraproject.org/wiki/Changes/UnversionedDocdirs]

Use %license for COPYRIGHT.
[https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text]

The binary currently tries to open /etc/hpl/HPL.dat and segfaults. I think it should be patched to use the new location.

README.Fedora still refers to mpich2. It's mpich now.

Shouldn't this be run in %check? It would test both mpi implementations on all archs.

===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[ ]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "BSD (3 clause)". Detailed output of licensecheck in
     /home/zbyszek/fedora/mpich/830869-hpl/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[?]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/hpl, /usr/share/doc/hpl-2.1
/usr/share/hpl should be owned.
/usr/share/doc/hpl too.

[ ]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/hpl,
     /usr/share/doc/hpl-2.1
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 40960 bytes in 7 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[!]: Uses parallel make %{?_smp_mflags} macro.
It probably should.

[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in hpl-
     common , hpl-doc , hpl-openmpi , hpl-mpich
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[?]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define dobuild() cp
     setup/Make.Linux_PII_CBLAS_gm Make.$MPI_COMPILER make
     TOPdir="%{_builddir}/%{name}-%{version}" arch=$MPI_COMPILER
     ARCH=$MPI_COMPILER \\%if %{with openblas} LAlib=-lopenblas %endif
Please use %global

[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: hpl-common-2.1-5.fc23.noarch.rpm
          hpl-doc-2.1-5.fc23.noarch.rpm
          hpl-openmpi-2.1-5.fc23.i686.rpm
          hpl-mpich-2.1-5.fc23.i686.rpm
          hpl-2.1-5.fc23.src.rpm
hpl-openmpi.i686: W: no-documentation
hpl-mpich.i686: W: no-documentation
5 packages and 0 specfiles checked; 0 errors, 2 warnings.




Rpmlint (debuginfo)
-------------------
Checking: hpl-debuginfo-2.1-5.fc23.i686.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
hpl-openmpi.i686: W: no-documentation
hpl-mpich.i686: W: no-documentation
5 packages and 0 specfiles checked; 0 errors, 2 warnings.



Requires
--------
hpl-openmpi (rpmlib, GLIBC filtered):
    hpl-common
    libc.so.6
    libgcc_s.so.1
    libgfortran.so.3
    libm.so.6
    libmpi.so.1
    libmpi_mpifh.so.2
    libmpi_usempi_ignore_tkr.so.0
    libmpi_usempif08.so.0
    libopenblas.so.0
    libpthread.so.0
    libquadmath.so.0
    openmpi
    rtld(GNU_HASH)

hpl-doc (rpmlib, GLIBC filtered):
    hpl-common

hpl-mpich (rpmlib, GLIBC filtered):
    hpl-common
    libc.so.6
    libgcc_s.so.1
    libgfortran.so.3
    libm.so.6
    libmpi.so.12
    libmpifort.so.12
    libopenblas.so.0
    libquadmath.so.0
    mpich
    rtld(GNU_HASH)

hpl-common (rpmlib, GLIBC filtered):



Provides
--------
hpl-openmpi:
    hpl-openmpi
    hpl-openmpi(x86-32)

hpl-doc:
    hpl-doc

hpl-mpich:
    hpl-mpich
    hpl-mpich(x86-32)

hpl-common:
    hpl-common



Source checksums
----------------
http://www.netlib.org/benchmark/hpl/hpl-2.1.tar.gz :
  CHECKSUM(SHA256) this package     : dd437dd34a098c51092319983addff1d8076fc8dd692d19c488252477363af15
  CHECKSUM(SHA256) upstream package : dd437dd34a098c51092319983addff1d8076fc8dd692d19c488252477363af15


Generated by fedora-review 0.5.3 (bcf15e3) last change: 2015-05-04
Command line :/usr/bin/fedora-review -b 830869 -m fedora-rawhide-i386 -o-n
Buildroot used: fedora-rawhide-i386
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6
Comment 28 Jaroslav Škarvada 2015-05-13 12:41:24 EDT
(In reply to Zbigniew Jędrzejewski-Szmek from comment #27)

Thanks for the review.

> Please add %global _docdir_fmt %{name}. Currently hpl-common has files in
> /usr/share/doc/hpl-common which is confusing and unnecessary.
> 
Fixed

> Documentation should be in an unversioned directory. 
> [https://fedoraproject.org/wiki/Changes/UnversionedDocdirs]
> 
Fixed, it was because this review request is very very old, and in that good old times, documentation was versioned :)

> Use %license for COPYRIGHT.
> [https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text]
>
Fixed, the same as previous, there was no %license when this review request was submitted.
 
> The binary currently tries to open /etc/hpl/HPL.dat and segfaults. I think
> it should be patched to use the new location.
> 
Please see previous discussion on HPL.dat location. I finally moved HPL.dat to /usr/share/hpl, but I am not sure whether it is good thing to add a fallback for HPL to read the file from there, probably it isn't. Nevertheless it shouldn't coredump. I patched it to cleanly exit.

> README.Fedora still refers to mpich2. It's mpich now.
> 
Fixed and also updated regarding HPL.dat location.

> Shouldn't this be run in %check? It would test both mpi implementations on
> all archs.
> 
I am currently not sure. Did you mean running the HPL benchmark by hand over all available implementations? And with which configuration? With the supplied example HPL.dat? What number of processes to use? One? Is it good thing to do?

> [?]: Package requires other packages for directories it uses.
>      Note: No known owner of /usr/share/hpl, /usr/share/doc/hpl-2.1
> /usr/share/hpl should be owned.
> /usr/share/doc/hpl too.
> 
It should be fixed now.

> Generic:
> [!]: Uses parallel make %{?_smp_mflags} macro.
> It probably should.
> 
Unfortunately it cannot, because the Makefile is broken. I added comment about it.
> [!]: Spec use %global instead of %define unless justified.
>      Note: %define requiring justification: %define dobuild() cp
>      setup/Make.Linux_PII_CBLAS_gm Make.$MPI_COMPILER make
>      TOPdir="%{_builddir}/%{name}-%{version}" arch=$MPI_COMPILER
>      ARCH=$MPI_COMPILER \\%if %{with openblas} LAlib=-lopenblas %endif
> Please use %global
> 
Fixed


New version:
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-6.fc21.src.rpm
Comment 29 Zbigniew Jędrzejewski-Szmek 2015-05-13 22:00:54 EDT
(In reply to Jaroslav Škarvada from comment #28)
> (In reply to Zbigniew Jędrzejewski-Szmek from comment #27)
> 
> Thanks for the review.
> 
> > Please add %global _docdir_fmt %{name}. Currently hpl-common has files in
> > /usr/share/doc/hpl-common which is confusing and unnecessary.
> > 
> Fixed
> 
> > Documentation should be in an unversioned directory. 
> > [https://fedoraproject.org/wiki/Changes/UnversionedDocdirs]
> > 
> Fixed, it was because this review request is very very old, and in that good
> old times, documentation was versioned :)
> 
> > Use %license for COPYRIGHT.
> > [https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text]
> >
> Fixed, the same as previous, there was no %license when this review request
> was submitted.
>  
> > The binary currently tries to open /etc/hpl/HPL.dat and segfaults. I think
> > it should be patched to use the new location.
> > 
> Please see previous discussion on HPL.dat location. I finally moved HPL.dat
> to /usr/share/hpl, but I am not sure whether it is good thing to add a
> fallback for HPL to read the file from there, probably it isn't.
> Nevertheless it shouldn't coredump. I patched it to cleanly exit.

I don't see why it shouldn't. What about the following simpler patch:
--- a/testing/ptest/HPL_pdinfo.c
+++ b/testing/ptest/HPL_pdinfo.c
@@ -294,11 +294,12 @@
 /*
  * Open file and skip data file header
  */
-      if( ( infp = fopen( "HPL.dat", "r" ) ) == NULL )
+      if( ( infp = fopen( "HPL.dat", "r" ) ) == NULL &&
+          ( infp = fopen( "/usr/share/hpl/HPL.dat", "r" ) ) == NULL)
       { 
          HPL_pwarn( stderr, __LINE__, "HPL_pdinfo",
                     "cannot open file HPL.dat" );
-         error = 1; goto label_error;
+         exit( 1 );
       }
 
       (void) fgets( line, HPL_LINE_MAX - 2, infp );

This way the package does something useful out-of-the-box, and gives a rough test/benchmark of the mpi installation. If the user wants to customize, they can provide their own HPL.dat file in $CWD.


> > README.Fedora still refers to mpich2. It's mpich now.
> > 
> Fixed and also updated regarding HPL.dat location.
hpl-README.Fedora still has old contents ("mpich2").

> > Shouldn't this be run in %check? It would test both mpi implementations on
> > all archs.
> > 
> I am currently not sure. Did you mean running the HPL benchmark by hand over
> all available implementations? And with which configuration? With the
> supplied example HPL.dat? What number of processes to use? One? Is it good
> thing to do?
Yes, that's what I'd do. Something like this:

%check
%{_openmpi_load}
mpirun -n 4 xhpl_openmpi
%{_openmpi_unload}

%{_mpich_load}
mpirun -n 4 xhpl_mpich
%{_mpich_unload}

This takes about two seconds on my machine. I guess it'd vary a lot between architectures, but should not be more then maybe ten seconds anywhere. The point is less to benchmark anything, but rather to test that it still runs at all. I think 4 is a good number, even if compiling on one cpu: high enough to test that things work, but does not consume undue resources.
Comment 30 Jaroslav Škarvada 2015-05-14 04:36:44 EDT
(In reply to Zbigniew Jędrzejewski-Szmek from comment #29)
> > > The binary currently tries to open /etc/hpl/HPL.dat and segfaults. I think
> > > it should be patched to use the new location.
> > > 
> > Please see previous discussion on HPL.dat location. I finally moved HPL.dat
> > to /usr/share/hpl, but I am not sure whether it is good thing to add a
> > fallback for HPL to read the file from there, probably it isn't.
> > Nevertheless it shouldn't coredump. I patched it to cleanly exit.
> 
> I don't see why it shouldn't. What about the following simpler patch:
> --- a/testing/ptest/HPL_pdinfo.c
> +++ b/testing/ptest/HPL_pdinfo.c
> @@ -294,11 +294,12 @@
>  /*
>   * Open file and skip data file header
>   */
> -      if( ( infp = fopen( "HPL.dat", "r" ) ) == NULL )
> +      if( ( infp = fopen( "HPL.dat", "r" ) ) == NULL &&
> +          ( infp = fopen( "/usr/share/hpl/HPL.dat", "r" ) ) == NULL)
>        { 
>           HPL_pwarn( stderr, __LINE__, "HPL_pdinfo",
>                      "cannot open file HPL.dat" );
> -         error = 1; goto label_error;
> +         exit( 1 );
>        }
>  
>        (void) fgets( line, HPL_LINE_MAX - 2, infp );
> 
> This way the package does something useful out-of-the-box, and gives a rough
> test/benchmark of the mpi installation. If the user wants to customize, they
> can provide their own HPL.dat file in $CWD.
> 
My previous opinion was the same - that it could do something useful out of the box. So shouldn't be better to use /etc/hpl/HPL.dat?

> 
> > > README.Fedora still refers to mpich2. It's mpich now.
> > > 
> > Fixed and also updated regarding HPL.dat location.
> hpl-README.Fedora still has old contents ("mpich2").
>
Sorry, I mistakenly built the package from the old cached sources.
 
> > > Shouldn't this be run in %check? It would test both mpi implementations on
> > > all archs.
> > > 
> > I am currently not sure. Did you mean running the HPL benchmark by hand over
> > all available implementations? And with which configuration? With the
> > supplied example HPL.dat? What number of processes to use? One? Is it good
> > thing to do?
> Yes, that's what I'd do. Something like this:
> 
> %check
> %{_openmpi_load}
> mpirun -n 4 xhpl_openmpi
> %{_openmpi_unload}
> 
> %{_mpich_load}
> mpirun -n 4 xhpl_mpich
> %{_mpich_unload}
> 
> This takes about two seconds on my machine. I guess it'd vary a lot between
> architectures, but should not be more then maybe ten seconds anywhere. The
> point is less to benchmark anything, but rather to test that it still runs
> at all. I think 4 is a good number, even if compiling on one cpu: high
> enough to test that things work, but does not consume undue resources.

Makes sense, I think that load of koji builders will be negligible.
Comment 31 Zbigniew Jędrzejewski-Szmek 2015-05-14 08:20:53 EDT
(In reply to Jaroslav Škarvada from comment #30)
> My previous opinion was the same - that it could do something useful out of
> the box. So shouldn't be better to use /etc/hpl/HPL.dat?
/usr/share/ seems more natural, because it's more of an example than an actual
config file: if I'm not mistaken you can have a few different ones and use them
in parallel. Either way is OK.
Comment 32 Jaroslav Škarvada 2015-05-14 11:07:52 EDT
New version:
Spec URL: http://jskarvad.fedorapeople.org/hpl/hpl.spec
SRPM URL: http://jskarvad.fedorapeople.org/hpl/hpl-2.1-7.fc21.src.rpm
Comment 33 Zbigniew Jędrzejewski-Szmek 2015-05-14 15:00:47 EDT
I see no other issues. Package is APPROVED.
Comment 34 Jaroslav Škarvada 2015-05-15 04:50:33 EDT
New Package SCM Request
=======================
Package Name: hpl 
Short Description: A Portable Implementation of the High-Performance Linpack Benchmark
Upstream URL: http://www.netlib.org/benchmark/hpl/
Owners: jskarvad
Branches: f20 f21 f22
InitialCC:
Comment 35 Gwyn Ciesla 2015-05-15 08:04:56 EDT
Git done (by process-git-requests).
Comment 36 Fedora Update System 2015-05-15 14:17:15 EDT
hpl-2.1-9.fc22.1 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/hpl-2.1-9.fc22.1
Comment 37 Fedora Update System 2015-05-15 14:30:33 EDT
hpl-2.1-9.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/hpl-2.1-9.fc21
Comment 38 Fedora Update System 2015-05-15 14:43:20 EDT
hpl-2.1-9.fc20.1 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/hpl-2.1-9.fc20.1
Comment 39 Fedora Update System 2015-05-19 17:54:31 EDT
hpl-2.1-10.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/hpl-2.1-10.fc20
Comment 40 Fedora Update System 2015-05-19 18:02:18 EDT
hpl-2.1-10.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/hpl-2.1-10.fc21
Comment 41 Fedora Update System 2015-05-25 23:52:01 EDT
hpl-2.1-9.fc22.1 has been pushed to the Fedora 22 stable repository.
Comment 42 Fedora Update System 2015-05-30 11:36:40 EDT
hpl-2.1-10.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 43 Fedora Update System 2015-05-30 11:36:51 EDT
hpl-2.1-10.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.