diff options
author | Paul A. Patience <paul@apatience.com> | 2023-10-13 12:35:37 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-10-14 22:41:44 +0200 |
commit | 50b82ea44e0cc19034058cfdac167284716d6471 (patch) | |
tree | 1b943122b14422979315c522c74df76978b6920e /gnu/packages/cpp.scm | |
parent | 4fbfe6c4cecd9f0d76ea884db0f5d46c5e28e6ac (diff) |
gnu: Add kokkos.
* gnu/packages/cpp.scm (kokkos): New variable.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/cpp.scm')
-rw-r--r-- | gnu/packages/cpp.scm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index f3f6d8df64..d89fcaeb1e 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -83,6 +83,7 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages datastructures) + #:use-module (gnu packages disk) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) @@ -95,6 +96,7 @@ #:use-module (gnu packages llvm) #:use-module (gnu packages logging) #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) #:use-module (gnu packages python) @@ -1062,6 +1064,56 @@ development of concurrent and multithreaded applications in C++.") programs.") (license license:expat))) +(define-public kokkos + (package + (name "kokkos") + (version "4.1.00") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kokkos/kokkos") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15kjpa54ssrrbid9h2nr94nh85qna5c4vq2152i4iy7gaagigy3c")) + (modules '((guix build utils))) + (snippet + ;; Remove bundled googletest. + #~(delete-file-recursively "tpls/gtest")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags + ;; deal.II uses only the serial backend, so do not enable the + ;; others yet. + #~(list "-DBUILD_SHARED_LIBS=ON" + "-DKokkos_ENABLE_SERIAL=ON" + "-DKokkos_ENABLE_TESTS=ON" + "-DKokkos_ENABLE_EXAMPLES=ON" + "-DKokkos_ENABLE_HWLOC=ON" + "-DKokkos_ENABLE_MEMKIND=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'install-license-files 'remove-cruft + (lambda _ + (delete-file + (string-append #$output "/share/doc/" + #$name "-" #$version + "/LICENSE_FILE_HEADER"))))))) + (native-inputs + (list googletest python)) + (inputs + (list `(,hwloc "lib") memkind)) + (home-page "https://github.com/kokkos/kokkos") + (synopsis "C++ abstractions for parallel execution and data management") + (description + "Kokkos Core implements a programming model in C++ for writing performance +portable applications targeting all major HPC platforms. For that purpose it +provides abstractions for both parallel execution of code and data management. +Kokkos is designed to target complex node architectures with N-level memory +hierarchies and multiple types of execution resources.") + (license license:asl2.0))) ; With LLVM exception + (define-public tweeny (package (name "tweeny") |