at 22.05-pre 41 lines 1.5 kB view raw
1{ lib, stdenv, fetchurl, perl, coreutils }: 2 3stdenv.mkDerivation rec { 4 pname = "berkeley_upc"; 5 version = "2.22.0"; 6 7 src = fetchurl { 8 url = "http://upc.lbl.gov/download/release/berkeley_upc-${version}.tar.gz"; 9 sha256 = "041l215x8z1cvjcx7kwjdgiaf9rl2d778k6kiv8q09bc68nwd44m"; 10 }; 11 12 postPatch = '' 13 patchShebangs . 14 ''; 15 16 # Used during the configure phase 17 ENVCMD = "${coreutils}/bin/env"; 18 19 nativeBuildInputs = [ coreutils ]; 20 buildInputs = [ perl ]; 21 22 meta = with lib; { 23 description = "A compiler for the Berkely Unified Parallel C language"; 24 longDescription = '' 25 Unified Parallel C (UPC) is an extension of the C programming language 26 designed for high performance computing on large-scale parallel 27 machines.The language provides a uniform programming model for both 28 shared and distributed memory hardware. The programmer is presented with 29 a single shared, partitioned address space, where variables may be 30 directly read and written by any processor, but each variable is 31 physically associated with a single processor. UPC uses a Single Program 32 Multiple Data (SPMD) model of computation in which the amount of 33 parallelism is fixed at program startup time, typically with a single 34 thread of execution per processor. 35 ''; 36 homepage = "https://upc.lbl.gov/"; 37 license = licenses.mit; 38 platforms = with platforms; [ linux ]; 39 maintainers = with maintainers; [ zimbatm ]; 40 }; 41}