HPC, Distributed Computing, Cloud computing, Cluster computing, Grid computing, Parallel computing, Hardware arch (ARM, CUDA, GPU, MIPS), Kernels, Compilers (source-to-source compiler, transcompiler/ transpilers)
ARM-CUDA
GPU
- GPU-benchmarking :: GPU benchmarking on Julia.
- MXNet.jl :: The dmlc/mxnet Julia package that brings flexible and efficient GPU computing and state-of-art deep learning to Julia.
- Titan.jl :: Write GPU kernels using pure Julia.
Mailing list : https://groups.google.com/forum/#!forum/julia-gpu
- AbstractGPUArray.jl :: An abstract interface for a GPU array, must be implemented by a back-end like OpenCL or OpenGL.
- CLBLAS.jl :: CLBLAS integration for Julia.
- CUBLAS.jl :: Julia interface to CUBLAS.
- CUDA.jl :: This package wraps key functions in CUDA Driver API.
- CUDArt.jl :: Wrapper for CUDA runtime API.
- CUDNN.jl :: Julia wrapper for the NVIDIA cuDNN GPU deep learning library.
- CURAND.jl : Wrapper for NVidia's cuRAND library.
- HSA.jl :: Julia Bindings for the HSA Runtime.
- julia-CuMatrix :: CUDA Matrix library.
- julia-kernels :: A small suite of tools aimed at being able to write kernels in Julia, which could be executed on the CPU, or as GPU kernels.
- MXNet.jl :: The dmlc/mxnet Julia package for flexible and efficient GPU computing and state-of-art deep learning in Julia.
- OpenCL.jl :: OpenCL 1.2 Julia bindings - a cross platform parallel computation API for programming parallel devices, with implementations from AMD, Nvidia, Intel, and others, similar in scope to PyOpenCL.
- UberSignals.jl :: Concept for a fast event signal system, using JIT and GPU acceleration, loosely inspired by Reactive.jl.
Resources
BENCHMARKS
- Microbenchmark timings with a Timeline
- Benchmark.jl :: A package for computing simple benchmarks, comparing functions and packages.
- Benchmarks.jl : A new benchmarking library for Julia.
- BenchmarkLite.jl :: A lightweight Julia package for simple performance benchmark.
- Criterion.jl :: A port of the Haskell's Criterion and Clojure's Criterium library to Julia, that runs benchmarks, analyzing the results using various statistical techniques.
- IProfile :: Preferably, use IProfile in Base packages to profile your code, which contains an "instrumenting profiler" for the Julia language. And, ReadTheDocs
- julia_qsortbenchmarks :: Suggested improvements to Julia's Quicksort implementation.
- JuliaBenchmarks :: Porting HPC Challenge benchmarks to Julia.
- PerfPlot.jl :: Performance Profile Plot.
- Perftests.jl :: Base perftests for Julia.
- raytracer.jl :: Raytracer in the Julia kernel and other raytracer packages.
- SimplexBenchmarks :: Benchmarks comparing individual operations of the Simplex method for linear programming in Julia and other languages. Uses modified version of jlSimplex to generate data from real instances.
- SortPerf.jl :: Julia module to test the performance of sorting algorithms.
COMPILERS
- Clang.jl :: Julia interface to libclang and C wrapper generator and its fork CIndex.jl to access the libclang interface of the LLVM Clang compiler.
- CompilerTools.jl :: The CompilerTools package, part of the High Performance Scripting project at Intel Labs.
- CompilerOptions.jl :: A Julia package for reading compiler options.
- Eglib.jl :: Clang.jl wrapping example, C code from @kindlmann.
- JITTools.jl :: Tools for working with in-memory object.
- LLVM.jl :: A Julia package for LLVM.
Preprocessor
- Precompile.jl :: Precompilation in Julia base, and its documentation
- SnoopCompile.jl :: Make your packages work faster with more extensive precompilation - Spy on the JIT-compiler and learn which functions & types it's compiling.
Transpiler
- Julia2C :: A source-to-source translator from Julia to C. This initial version converts basic Julia types and expressions into the corresponding C types and statements.
Computer Performance
Code Analyzer
- IACA.jl :: A wrapper around intel's arch code analyzer for Julia.
Time
- Actors.jl :: An Actor Model implementation in Julia.
Cloud/ Cluster
- AWS.jl :: supports the EC2 and S3 API's, letting you start and stop EC2 instances dynamically.
- ChainedVectors.jl :: Few utility types over Julia Vector type.
- CloudArray.jl :: Easy big data programming in the cloud.
- ClusterDicts.jl :: Global and Distributed dictionaries for Julia.
- Flume.jl :: A port of the Google Flume Data-Parallel Pipeline system.
- FunHPC.jl :: A high-level API for distributed computing, implemented on top of MPI.
- GCloud.jl :: Tools for working with Google Compute engine via the cloud CLI.
- OCAWS.jl :: An AWS library.
- ParallelAccelerator.jl :: The ParallelAccelerator package, part of the High Performance Scripting project at Intel Labs.
- ParallelGLM.jl :: Parallel fitting of GLMs using SharedArrays.
- PTools.jl :: A collection of utilities for parallel computing in Julia.
- SGEArrays.jl :: SGEArray implements a simple iterator in Julia to efficiently handle Sun Grid Engine task arrays.
Grid Computing
- ClusterManagers.jl :: Support for different clustering technologies.
- Collectl.jl :: Plotting information from Collectl in julia.
- LCJC.jl :: Loosely Coupled Julia Clusters.
- LoraMPI.jl :: MPI Job Manager for Lora Parralel-Centric Runners.
- MatlabCluster.jl :: Julia cluster manager for Matlab Job Scheduler.
- SimJulia.jl :: A combined continuous time / discrete event process oriented simulation framework written in Julia inspired by the Simula library DISCO and the Python library SimPy.
- Blocks.jl :: A framework to represent chunks of entities and parallel methods on them.
- ClusterManagers.jl :: Support for different clustering technologies.
- DistributedArrays.jl :: Distributed Arrays in Julia.
- Elly.jl :: Hadoop HDFS and Yarn client.
- HDFS.jl :: An interface wrapper over the Hadoop HDFS library that wraps the HDFS C library libhdfs and provides APIs similar to Julia Filesystem APIs which can be used for direct access to HDFS files.
- hwloc.jl :: The Portable Hardware Locality (hwloc) package wraps the hwloc library to provide a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading.
- MessageUtils.jl :: A collection of utilities for messaging.
- MPI.jl :: A basic Julia wrapper for the portable message passing system Message Passing Interface (MPI).
- JuliaMPIMonteCarlo :: Illustrative examples using Julia and MPI to do Markov Chain Monte Carlo (MCMC) methods.
- ScaLAPACK.jl :: Scalable Linear Algebra PACKage.
Resources
- Yeppp.jl :: A low level, high performance library for vectorized operations, elementwise operation on arrays, supports the x86(-64), ARM and MIPS architectures, and takes advantage of a lot of SIMD extensions (from SSE to AVX2 on x86, NEON on ARM). The New BSD(3-clause BSD)-licensed source code is hosted on Bitbucket.
Publications