Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



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.


	(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


	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


	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.

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.


	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

MultiMLton group
Department of Computer Science
Purdue University


MLton for scalable multicore architectures



No releases published


No packages published