GNU bug report logs - #28423
gnu: Add imb-openmpi.

Previous Next

Package: guix-patches;

Reported by: Dave Love <fx <at> gnu.org>

Date: Mon, 11 Sep 2017 20:42:02 UTC

Severity: normal

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 28423 in the body.
You can then email your comments to 28423 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Mon, 11 Sep 2017 20:42:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Dave Love <fx <at> gnu.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 11 Sep 2017 20:42:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Dave Love <fx <at> gnu.org>
To: guix-patches <at> gnu.org
Subject: gnu: Add imb-openmpi.
Date: Mon, 11 Sep 2017 21:40:56 +0100
[Message part 1 (text/plain, inline)]
I'm not sure whether this should be in benchmark or in mpi, as an MPI
benchmark.

[0001-gnu-Add-imb-openmpi.patch (text/x-diff, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Mon, 11 Sep 2017 20:48:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Dave Love <fx <at> gnu.org>
To: guix-patches <at> gnu.org
Subject: Re: gnu: Add imb-openmpi.
Date: Mon, 11 Sep 2017 21:47:35 +0100
[Message part 1 (text/plain, inline)]
I wrote: 

> I'm not sure whether this should be in benchmark or in mpi, as an MPI
> benchmark.

and then attached an old one rather then a new one where I put it in
benchmark instead...  This is what I meant to send.

[0001-gnu-Add-imb-openmpi.patch (text/x-diff, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Tue, 12 Sep 2017 13:08:02 GMT) Full text and rfc822 format available.

Message #11 received at 28423 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Dave Love <fx <at> gnu.org>
Cc: 28423 <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Tue, 12 Sep 2017 15:06:54 +0200
Heya,

Dave Love <fx <at> gnu.org> skribis:

> From eed7aaac597248505d0ad0609810f7af5caac720 Mon Sep 17 00:00:00 2001
> From: Dave Love <fx <at> gnu.org>
> Date: Sat, 9 Sep 2017 11:10:29 +0100
> Subject: [PATCH] gnu: Add imb-openmpi.
>
> * mpi.scm (gnu, imb): New function.
>   (imb-openmpi): New package.

[...]

> +    (inputs
> +     `((,(package-name mpi) ,mpi)))

Rather:

  `(("mpi" ,mpi))

> +         (replace 'build
> +           (lambda* _
> +             (let ((mpi-home (dirname (dirname (which "mpicc")))))

I'd suggest:

  (lambda* (#:key inputs #:allow-other-keys)
    (let ((mpi (assoc-ref inputs "mpi")))
      ...))

> +               (zero?
> +                ;; Not safe for parallel build
> +                (system
> +                 (format #f "make -C imb/src -f make_mpich SHELL=sh MPI_HOME=~a"
> +                         mpi-home))))))

Rather use ‘system*’ to avoid going through the shell.

> +                 (system
> +                  (string-append
> +                   "cd imb/src && install -m755 IMB-IO IMB-EXT IMB-MPI1 IMB-NBC IMB-RMA "
> +                   bin)))
> +                (zero?
> +                 (system
> +                  (string-append
> +                   "cd imb && cp -r license " doc))))))))))

Likewise, use ‘copy-file’ and ‘copy-recursively’ rather than shelling
out.

> +    (synopsis (format #f "Intel MPI Benchmarks, ~a version" (package-name mpi)))
> +    (description (format #f "\
> +A set of MPI performance measurements for point-to-point and global
> +communication, and file, operations for a range of message sizes.
> +The generated benchmark data fully characterize:
> +@itemize
> +@item
> +Performance of a cluster system, including node performance, network latency,
> +and throughput;
> +@item
> +Efficiency of the MPI implementation.
> +@end itemize
> +This is the ~a version." (package-name mpi)))

Please avoid constructing synopsis/description strings as this prevents
i18n.

My suggestion would be to either leave them unchanged, which should be
good enough anyway, or to just modify the synopsis but then arrange to
have the whole string translated.

Could you send an updated patch?

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Thu, 28 Sep 2017 20:10:03 GMT) Full text and rfc822 format available.

Message #14 received at 28423 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Dave Love <fx <at> gnu.org>
Cc: 28423 <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Thu, 28 Sep 2017 22:09:45 +0200
Ping!  :-)

ludo <at> gnu.org (Ludovic Courtès) skribis:

> Heya,
>
> Dave Love <fx <at> gnu.org> skribis:
>
>> From eed7aaac597248505d0ad0609810f7af5caac720 Mon Sep 17 00:00:00 2001
>> From: Dave Love <fx <at> gnu.org>
>> Date: Sat, 9 Sep 2017 11:10:29 +0100
>> Subject: [PATCH] gnu: Add imb-openmpi.
>>
>> * mpi.scm (gnu, imb): New function.
>>   (imb-openmpi): New package.
>
> [...]
>
>> +    (inputs
>> +     `((,(package-name mpi) ,mpi)))
>
> Rather:
>
>   `(("mpi" ,mpi))
>
>> +         (replace 'build
>> +           (lambda* _
>> +             (let ((mpi-home (dirname (dirname (which "mpicc")))))
>
> I'd suggest:
>
>   (lambda* (#:key inputs #:allow-other-keys)
>     (let ((mpi (assoc-ref inputs "mpi")))
>       ...))
>
>> +               (zero?
>> +                ;; Not safe for parallel build
>> +                (system
>> +                 (format #f "make -C imb/src -f make_mpich SHELL=sh MPI_HOME=~a"
>> +                         mpi-home))))))
>
> Rather use ‘system*’ to avoid going through the shell.
>
>> +                 (system
>> +                  (string-append
>> +                   "cd imb/src && install -m755 IMB-IO IMB-EXT IMB-MPI1 IMB-NBC IMB-RMA "
>> +                   bin)))
>> +                (zero?
>> +                 (system
>> +                  (string-append
>> +                   "cd imb && cp -r license " doc))))))))))
>
> Likewise, use ‘copy-file’ and ‘copy-recursively’ rather than shelling
> out.
>
>> +    (synopsis (format #f "Intel MPI Benchmarks, ~a version" (package-name mpi)))
>> +    (description (format #f "\
>> +A set of MPI performance measurements for point-to-point and global
>> +communication, and file, operations for a range of message sizes.
>> +The generated benchmark data fully characterize:
>> +@itemize
>> +@item
>> +Performance of a cluster system, including node performance, network latency,
>> +and throughput;
>> +@item
>> +Efficiency of the MPI implementation.
>> +@end itemize
>> +This is the ~a version." (package-name mpi)))
>
> Please avoid constructing synopsis/description strings as this prevents
> i18n.
>
> My suggestion would be to either leave them unchanged, which should be
> good enough anyway, or to just modify the synopsis but then arrange to
> have the whole string translated.
>
> Could you send an updated patch?
>
> Thanks,
> Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Mon, 02 Oct 2017 20:46:01 GMT) Full text and rfc822 format available.

Message #17 received at 28423 <at> debbugs.gnu.org (full text, mbox):

From: Dave Love <fx <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 28423 <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Mon, 02 Oct 2017 21:45:44 +0100
Ludovic Courtès <ludo <at> gnu.org> writes:

> Ping!  :-)
>
I think I was waiting for an explanation of the doc string rules for
translation, and why they seem to be different from what gettext
say in terms of placeholders in format strings.  I think that needs
documenting anyhow.

Anyhow, I'll sort out a new version when I have a chance.




Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Tue, 03 Oct 2017 12:49:02 GMT) Full text and rfc822 format available.

Message #20 received at 28423 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Dave Love <fx <at> gnu.org>
Cc: 28423 <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Tue, 03 Oct 2017 14:47:58 +0200
[Message part 1 (text/plain, inline)]
Hi Dave,

Dave Love <fx <at> gnu.org> skribis:

> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> Ping!  :-)
>>
> I think I was waiting for an explanation

You didn’t ask though, did you?  ;-)

> of the doc string rules for translation, and why they seem to be
> different from what gettext say in terms of placeholders in format
> strings.  I think that needs documenting anyhow.

In po/packages/Makevars, we define only two keywords for translatable
strings: ‘synopsis’ and ‘description’.  Thus, xgettext will extract this
string:

  (synopsis "This is translatable")

but it will not extract this:

  (synopsis (string-append "This is " "not translatable"))

I’ve added a note in the manual (below).

HTH,
Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/doc/guix.texi b/doc/guix.texi
index c57c0bab6..9e301d007 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -19147,6 +19147,18 @@ Translation Project} so that as many users as possible can read them in
 their native language.  User interfaces search them and display them in
 the language specified by the current locale.
 
+To allow @command{xgettext} to extract them as translatable strings,
+synopses and descriptions @emph{must be literal strings}.  This means
+that you cannot use @code{string-append} or @code{format} to construct
+these strings:
+
+@lisp
+(package
+  ;; @dots{}
+  (synopsis "This is translatable")
+  (description (string-append "This is " "*not*" " translatable.")))
+@end lisp
+
 Translation is a lot of work so, as a packager, please pay even more
 attention to your synopses and descriptions as every change may entail
 additional work for translators.  In order to help them, it is possible

Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Tue, 03 Oct 2017 16:58:01 GMT) Full text and rfc822 format available.

Message #23 received at 28423 <at> debbugs.gnu.org (full text, mbox):

From: Dave Love <fx <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 28423 <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Tue, 03 Oct 2017 17:57:25 +0100
Ludovic Courtès <ludo <at> gnu.org> writes:

> You didn’t ask though, did you?  ;-)

I thought I had, twice.  Oh, well, sorry!

>> of the doc string rules for translation, and why they seem to be
>> different from what gettext say in terms of placeholders in format
>> strings.  I think that needs documenting anyhow.
>
> In po/packages/Makevars, we define only two keywords for translatable
> strings: ‘synopsis’ and ‘description’.  Thus, xgettext will extract this
> string:
>
>   (synopsis "This is translatable")
>
> but it will not extract this:
>
>   (synopsis (string-append "This is " "not translatable"))

The question would have been why

  (format-string #f ("Package variant ~a is not translatable" x))

when the sprintf equivalent would be, as I understand what the gettext
doc says.




Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Tue, 03 Oct 2017 19:53:01 GMT) Full text and rfc822 format available.

Message #26 received at 28423 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Dave Love <fx <at> gnu.org>
Cc: 28423 <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Tue, 03 Oct 2017 21:51:58 +0200
Dave Love <fx <at> gnu.org> skribis:

> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> You didn’t ask though, did you?  ;-)
>
> I thought I had, twice.  Oh, well, sorry!
>
>>> of the doc string rules for translation, and why they seem to be
>>> different from what gettext say in terms of placeholders in format
>>> strings.  I think that needs documenting anyhow.
>>
>> In po/packages/Makevars, we define only two keywords for translatable
>> strings: ‘synopsis’ and ‘description’.  Thus, xgettext will extract this
>> string:
>>
>>   (synopsis "This is translatable")
>>
>> but it will not extract this:
>>
>>   (synopsis (string-append "This is " "not translatable"))
>
> The question would have been why
>
>   (format-string #f ("Package variant ~a is not translatable" x))

Strings are not applicable.  You probably meant:

  (G_ "Foo ~a bar")

> when the sprintf equivalent would be, as I understand what the gettext
> doc says.

In the example above, if we define ‘G_’ as an xgettext keyword in
‘Makevars’, the string is indeed extracted.  But that’s not what was
happening here.

HTH!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#28423; Package guix-patches. (Wed, 04 Oct 2017 15:33:01 GMT) Full text and rfc822 format available.

Message #29 received at 28423 <at> debbugs.gnu.org (full text, mbox):

From: Dave Love <fx <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 28423 <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Wed, 04 Oct 2017 16:32:24 +0100
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

>> The question would have been why
>>
>>   (format-string #f ("Package variant ~a is not translatable" x))
>
> Strings are not applicable.  You probably meant:
>
>   (G_ "Foo ~a bar")

Sorry, I don't know where the extra parens came from in hasty mail.
(I was Scheming around the time of T...)

What I meant was something like

  (description (format-string #f "Package variant ~a is not translatable" x))

Anyhow, thanks for the explanation in the new doc which clears the
confusion I had.  I don't understand the mechanism, but I guess it's not
worth researching.

Here's a revised patch.

[0001-gnu-Add-imb-openmpi.patch (text/x-diff, inline)]
From 44b58081283c93e49d00900cc3e29dfd1af0e97a Mon Sep 17 00:00:00 2001
From: Dave Love <fx <at> gnu.org>
Date: Tue, 3 Oct 2017 19:14:50 +0100
Subject: [PATCH] gnu: Add imb-openmpi.

* gnu/packages/benchmark.scm(imb): New function.
(imb-openmpi): New variable.
---
 gnu/packages/benchmark.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 136f141d8..e3c2570ef 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke <at> fastmail.com>
+;;; Copyright © 2017 Dave Love <fx <at> gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages python)
   #:use-module (gnu packages storage))
 
@@ -103,3 +105,64 @@ is to write a job file matching the I/O load one wants to simulate.")
     ;; are covered by other licenses.
     (license (list license:gpl2 license:gpl2+ license:bsd-2
                    license:public-domain))))
+
+;; Parameterized in anticipation of m(va)pich support
+(define (imb mpi)
+  (package
+    (name (string-append "imb-" (package-name mpi)))
+    (version "2017.2")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (let* ((parts (string-split version #\.) )
+                  (major (car parts))
+                  (minor (cadr parts)))
+             (string-append
+              "https://software.intel.com/sites/default/files/managed/76/6c/IMB_"
+              major "_Update" minor ".tgz")))
+      (sha256 (base32 "11nczxm686rsppmw9gjc2p2sxc0jniv5kv18yxm1lzp5qfh5rqyb"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("mpi" ,mpi)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((mpi-home (assoc-ref inputs "mpi")))
+               (zero?
+                ;; Not safe for parallel build
+                (system* "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh"
+                         (string-append "MPI_HOME=" mpi-home))))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc"))
+                    (bin (string-append out "/bin")))
+               (with-directory-excursion "imb/src"
+                 (for-each
+                  (lambda (file)
+                    (install-file file bin))
+                  '("IMB-IO" "IMB-EXT" "IMB-MPI1" "IMB-NBC" "IMB-RMA")))
+               (mkdir-p doc)
+               (with-directory-excursion "imb"
+                 (copy-recursively "license" doc)))
+             #t)))))
+    (home-page "https://software.intel.com/en-us/articles/intel-mpi-benchmarks")
+    (synopsis "Intel MPI Benchmarks")
+    (description
+     "A set of MPI performance measurements for point-to-point and global
+communication, and file, operations for a range of message sizes.
+The generated benchmark data fully characterize:
+@itemize
+@item
+Performance of a cluster system, including node performance, network latency,
+and throughput;
+@item
+Efficiency of the MPI implementation.
+@end itemize")
+    (license license:cpl1.0)))
+
+(define-public imb-openmpi (imb openmpi))
-- 
2.11.0


Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Thu, 05 Oct 2017 09:25:02 GMT) Full text and rfc822 format available.

Notification sent to Dave Love <fx <at> gnu.org>:
bug acknowledged by developer. (Thu, 05 Oct 2017 09:25:03 GMT) Full text and rfc822 format available.

Message #34 received at 28423-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Dave Love <fx <at> gnu.org>
Cc: 28423-done <at> debbugs.gnu.org
Subject: Re: [bug#28423] gnu: Add imb-openmpi.
Date: Thu, 05 Oct 2017 11:24:31 +0200
[Message part 1 (text/plain, inline)]
Dave Love <fx <at> gnu.org> skribis:

> From 44b58081283c93e49d00900cc3e29dfd1af0e97a Mon Sep 17 00:00:00 2001
> From: Dave Love <fx <at> gnu.org>
> Date: Tue, 3 Oct 2017 19:14:50 +0100
> Subject: [PATCH] gnu: Add imb-openmpi.
>
> * gnu/packages/benchmark.scm(imb): New function.
> (imb-openmpi): New variable.

Committed with the cosmetic changes below, thank you!

Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index e3c2570ef..feed7b545 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -27,7 +27,8 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages storage))
+  #:use-module (gnu packages storage)
+  #:use-module (ice-9 match))
 
 (define-public fio
   (package
@@ -114,12 +115,11 @@ is to write a job file matching the I/O load one wants to simulate.")
     (source
      (origin
       (method url-fetch)
-      (uri (let* ((parts (string-split version #\.) )
-                  (major (car parts))
-                  (minor (cadr parts)))
-             (string-append
-              "https://software.intel.com/sites/default/files/managed/76/6c/IMB_"
-              major "_Update" minor ".tgz")))
+      (uri (match (string-split version #\.)
+             ((major minor)
+              (string-append
+               "https://software.intel.com/sites/default/files/managed/76/6c/IMB_"
+               major "_Update" minor ".tgz"))))
       (sha256 (base32 "11nczxm686rsppmw9gjc2p2sxc0jniv5kv18yxm1lzp5qfh5rqyb"))))
     (build-system gnu-build-system)
     (inputs
@@ -139,7 +139,7 @@ is to write a job file matching the I/O load one wants to simulate.")
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc"))
+                    (doc (string-append out "/share/doc/" ,name))
                     (bin (string-append out "/bin")))
                (with-directory-excursion "imb/src"
                  (for-each
@@ -153,9 +153,11 @@ is to write a job file matching the I/O load one wants to simulate.")
     (home-page "https://software.intel.com/en-us/articles/intel-mpi-benchmarks")
     (synopsis "Intel MPI Benchmarks")
     (description
-     "A set of MPI performance measurements for point-to-point and global
-communication, and file, operations for a range of message sizes.
-The generated benchmark data fully characterize:
+     "This package provides benchmarks for implementations of the @dfn{Message
+Passing Interface} (MPI).  It contains MPI performance measurements for
+point-to-point and global communication, and file, operations for a range of
+message sizes.  The generated benchmark data fully characterize:
+
 @itemize
 @item
 Performance of a cluster system, including node performance, network latency,

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 02 Nov 2017 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 177 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.