(define-module (glicid packages mpi) #:use-module (guix packages) #:use-module (guix download) #:use-module ((gnu packages mpi) #:prefix gnu:) #:use-module (glicid packages linux) #:use-module (glicid packages fabric-management) #:use-module (glicid utils) #:use-module (glicid packages parallel) ) (define openmpi-latest gnu:openmpi) (define (transform-package original-package suffix) (package (inherit original-package) (name (string-append (package-name original-package) "-" suffix )) ) ) (define (instead-of package-a-spec package-b) (package-input-rewriting/spec `( (,package-a-spec . ,(const package-b) ) ; #:deep? #t ) ) ) (define-public openmpi-glicid (transform-package ((instead-of "slurm" slurm-glicid) openmpi-latest) "glicid")) (define-public openmpi-glicid-libfabric (transform-package ((instead-of "libfabric" libfabric-latest) openmpi-glicid) "libfabric")) (define-public openmpi-glicid-rdma (transform-package ((instead-of "rdma-core" rdma-core-latest) openmpi-glicid) "rdma-core")) (define-public openmpi-glicid-ucx (transform-package ((instead-of "ucx" ucx-latest) openmpi-glicid) "ucx")) (define-public openmpi-glicid-libfabric-rdma (transform-package ((instead-of "rdma-core" rdma-core-latest) openmpi-glicid-libfabric) "rdma")) (define-public openmpi-glicid-libfabric-ucx (transform-package ((instead-of "ucx" ucx-latest) openmpi-glicid-libfabric) "ucx")) (define-public openmpi-glicid-libfabric-rdma-ucx (transform-package ((instead-of "ucx" ucx-latest) openmpi-glicid-libfabric-rdma) "ucx")) (define openmpi-glicid-transform-gcc-11 (gcc11-instead-of-gcc openmpi-glicid)) (define-public openmpi-glicid-gcc-11 (package (inherit openmpi-glicid-transform-gcc-11) (name (string-append (package-name openmpi-glicid-transform-gcc-11) "-gcc-11" )) ) ) ;;; end