-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
81 lines (57 loc) · 2.58 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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