diff options
Diffstat (limited to 'gnu/packages/cpp.scm')
-rw-r--r-- | gnu/packages/cpp.scm | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 7d9eb2a264..d89fcaeb1e 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2023 Liliana Marie Prikler <[email protected]> ;;; Copyright © 2023 Denis 'GNUtoo' Carikli <[email protected]> ;;; Copyright © 2023 Foundation Devices, Inc. <[email protected]> +;;; Copyright © 2023 Paul A. Patience <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,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) @@ -94,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) @@ -1039,6 +1042,78 @@ Model and CSP-like channels. The goal of SObjectizer is to simplify development of concurrent and multithreaded applications in C++.") (license license:bsd-3))) +(define-public taskflow + (package + (name "taskflow") + (version "3.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/taskflow/taskflow") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cv74l181137lchc1rxygcg401cnq216ymq5qz2njsw99j342br3")))) + (build-system cmake-build-system) + (home-page "https://taskflow.github.io/") + (synopsis + "General-purpose parallel and heterogeneous task programming system") + (description + "Taskflow is a C++ library for writing parallel and heterogeneous task +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") |