This repository has been archived by the owner. It is now read-only.
MultiMLton ---------- MultiMLton is a compiler and runtime environment that targets scalable multicore platforms. It is an extension of MLton, an open-source, whole-program, optimizing Standard ML compiler. It combines new language abstractions and associated compiler analyses for expressing and implementing various kinds of fine-grained parallelism (safe futures, speculation, transactions, etc.), along with a sophisticated runtime system tuned to efficiently handle large numbers of lightweight threads. http://multimlton.cs.purdue.edu INSTALL ------- Dependencies (1) MLton : For specific installation instructions, please refer to MLton installation. If you install MLton in your local directory, append the path to MLton’s lib and bin directory to the PATH environment variable. (2) GnuMP : MultiMLton has been tested with version 4.3.2 Build Type make in multiMLton/trunk. After a successful build, the newly built binaries are placed in multiMLton/trunk/build/bin/. Known Issues/Caveats (1) Build process consumes a lot of memory (> 4 GB) and hence it might take a long time to build on a memory constrained machine. (2) Regression test Weak.2 fails Notes MultiMLton has been tested on the X86_64 architecture running Linux with kernel version 2.6.18-164. Since MultiMLton uses C-Codegen in the backend, any system with GCC and POSIX threads should support MultiMLton. Please contact us if you have problems building or running MultiMLton. RUNNING ------- New @MLton parameters (1) number-processors <n> - number of processors to be used for running the program. Default is 1. (2) enable-timer <microsecs> - Timer interval in micro seconds. Timer is disabled by default. Examples Some simple examples are available in trunk/testing/pacml. Create a new environment variable called MULTIMLTON, that points to the multiMLton binary. For convenience, add export MULTIMLTON=<multiMLtonRoot>/trunk/build/bin/mlton to your .bashrc file. Here, <multiMLtonRoot> corresponds to the directory where multiMLton source can be found. A Makefile is provided for building the tests. A make without arguments builds all of the tests in the directory. Individual tests, say test1_parasite.sml, can be built by make test1_parasite-amd64 The program can be run by invoking ./test1_parasite-amd64 @MLton number-processors 1 enable-timer 20000 -- 100 ACML/Parasite Sources --------------------- The source files for ACML and Parasites can be found in trunk/basis-library/pacml. ------------------------------ MultiMLton group Department of Computer Science Purdue University firstname.lastname@example.org