MyNixOS website logo
Description

a code generator for partial differential equations solvers.

The purpose of this project is to design a high-level language for implementing explicit partial-differential equations solvers on supercomputers as well as today’s advanced personal computers. A language to describe the knowledge on algebraic concepts, physical equations, integration algorithms, optimization techniques, and hardware designs --- all the necessaries of the simulations in abstract, modular, re-usable and combinable forms.

How to use

The module Language.Paraiso.OM.Builder contains the Builder monad, its typeclass instance declarations and functions that can be used to build Paraiso programs. Reserved words are load, store, imm, loadIndex, loadSize, shift, reduce and broadcast.

Paraiso frontend uses Data.Tensor.Typelevelhttp://hackage.haskell.org/package/typelevel-tensor, the library for tensor calculus of arbitrary rank and dimension. Vector and Axis are two main concepts. The type Vector represents rank-1 tensor, and tensors of higher ranks are recursively defined as Vector of Vectors. With Axis you can refer to the components of Vectors, compose them, or contract them. See the wiki http://www.paraiso-lang.org/wiki/ and the paper http://arxiv.org/abs/1204.4779 for more detail. Examples are in https://github.com/nushio3/Paraiso/tree/master/examples.

  • 0.3.1.5 : Catch up to stack lts-3.16/ghc 7.10.2, thanks to Justus Sagemüller's patch!

  • 0.3.0.0 Doughnut : refined interface and support for cyclic boundary conditions.

  • 0.2.0.0 Companion : genetic algorithm support for automated tuning.

  • 0.1.0.0 Binary : enhanced backend, code generator for OpenMP and CUDA

  • 0.0.0.0 Atmosphere : code generator for single CPU

Metadata

Version

0.3.1.5

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows