All Projects → rvantonder → hack_parallel

rvantonder / hack_parallel

Licence: other
The core parallel and shared memory library used by Hack, Flow, and Pyre

Programming Languages

ocaml
1615 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to hack parallel

data-parallelism
juliafolds.github.io/data-parallelism/
Stars: ✭ 22 (-43.59%)
Mutual labels:  parallel, map-reduce
Ems
Extended Memory Semantics - Persistent shared object memory and parallelism for Node.js and Python
Stars: ✭ 552 (+1315.38%)
Mutual labels:  parallel, shared-memory
FoldsCUDA.jl
Data-parallelism on CUDA using Transducers.jl and for loops (FLoops.jl)
Stars: ✭ 48 (+23.08%)
Mutual labels:  parallel, map-reduce
wasm-bindgen-rayon
An adapter for enabling Rayon-based concurrency on the Web with WebAssembly.
Stars: ✭ 257 (+558.97%)
Mutual labels:  parallel
parallel
Lwt-enabled distributed computing library
Stars: ✭ 36 (-7.69%)
Mutual labels:  parallel
open-soql
Open source implementation of the SOQL.
Stars: ✭ 15 (-61.54%)
Mutual labels:  map-reduce
mmap-object
Shared Memory Objects for Node
Stars: ✭ 90 (+130.77%)
Mutual labels:  shared-memory
dbaTDPMon
dbaTDPMon - Troubleshoot Database Performance and Monitoring
Stars: ✭ 20 (-48.72%)
Mutual labels:  parallel
laravel-parallel
Laravel parallel
Stars: ✭ 41 (+5.13%)
Mutual labels:  parallel
hatrack
Fast, multi-reader, multi-writer, lockless data structures for parallel programming
Stars: ✭ 55 (+41.03%)
Mutual labels:  parallel
go-worker-thread-pool
A visual working example of a Thread Pool pattern, based on a known blog article.
Stars: ✭ 24 (-38.46%)
Mutual labels:  parallel
NPB-CPP
NAS Parallel Benchmark Kernels in C/C++. The parallel versions are in FastFlow, TBB, and OpenMP.
Stars: ✭ 18 (-53.85%)
Mutual labels:  parallel
future.mapreduce
[EXPERIMENTAL] R package: future.mapreduce - Utility Functions for Future Map-Reduce API Packages
Stars: ✭ 12 (-69.23%)
Mutual labels:  map-reduce
orchestrator
The orchestrator executes all cypress specs across parallel docker containers based on a configuration file.
Stars: ✭ 61 (+56.41%)
Mutual labels:  parallel
cruise
User space POSIX-like file system in main memory
Stars: ✭ 27 (-30.77%)
Mutual labels:  parallel
optuna-examples
Examples for https://github.com/optuna/optuna
Stars: ✭ 238 (+510.26%)
Mutual labels:  parallel
Parallel.GAMIT
Python wrapper to parallelize GAMIT executions
Stars: ✭ 22 (-43.59%)
Mutual labels:  parallel
reactphp-parallel
ReactPHP bindings around ext-parallel
Stars: ✭ 15 (-61.54%)
Mutual labels:  parallel
web-scraping-engine
A simple web scraping engine supporting concurrent and anonymous scraping
Stars: ✭ 27 (-30.77%)
Mutual labels:  parallel
swarmci
Swarm CI - Docker Swarm-based CI system or enhancement to existing systems.
Stars: ✭ 48 (+23.08%)
Mutual labels:  parallel

README

This library contains the core parallel and shared memory components used in Hack, Flow, and Pyre. The internals of these components are little known outside of these projects, yet stand to benefit the OCaml community more generally, both for practical use and educational purposes.

This library extracts the core components, wraps them in a tidier interface, and builds with dune. It is a personal best effort and offered 'as-is': there is no promise of maintenance, and no official support or affiliation with the projects and/or companies supporting the projects above.

The code contains potentially leftover and irrelevant functions (again, best effort), and do not necessarily have the most recent upstream changes of corresponding modules. This is especially the case for modules in procs and heap (cf. respective procs and heap in Hack). Pull requests for upstream changes to these files are welcome. The files in the current library are current as of around mid-2018.

Install and Example

Hack_parallel is available on opam:

opam install hack_parallel

Please see the example project here to get a feel for the interface: https://github.com/rvantonder/hack-parallel-example

Some more details

The design decisions behind the parallel architecture and shared memory are best explained by this video and this part of the documentation. You can ignore the scary THIS CODE ONLY WORKS WITH HACK--the code does work generally, but you have to keep in mind the restrictions on memory operations as explained in the rest of the file. The motivation behind the shared memory implementation is similar to ancient.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].