<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.algo-prog.info/ocmc/web/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.algo-prog.info/ocmc/web/feed.php">
        <title>OCaml4MultiCore</title>
        <description></description>
        <link>http://www.algo-prog.info/ocmc/web/</link>
        <image rdf:resource="http://www.algo-prog.info/ocmc/web/lib/images/favicon.ico" />
       <dc:date>2010-07-06T19:10:53+02:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=benchmarks&amp;rev=1241705357&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=contact&amp;rev=1253653578&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=download&amp;rev=1266244161&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=download_old&amp;rev=1246642004&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=faq&amp;rev=1253651493&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=faq_and_known_bugs&amp;rev=1246643137&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=garbage_collector_description&amp;rev=1238876995&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=gci.mli&amp;rev=1248099495&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=implem&amp;rev=1246642711&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=index&amp;rev=1266244073&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=installation&amp;rev=1246642118&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=log&amp;rev=1245252246&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=manual&amp;rev=1238692966&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=notes&amp;rev=1233588341&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=ocaml_for_multicore&amp;rev=1277848536&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=ocaml_for_multicore_architectures&amp;rev=1278082613&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=readme&amp;rev=1248099159&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=seatmark&amp;rev=1233583223&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.algo-prog.info/ocmc/web/index.php?id=why_amd64&amp;rev=1238717617&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://www.algo-prog.info/ocmc/web/lib/images/favicon.ico">
        <title>OCaml4MultiCore</title>
        <link>http://www.algo-prog.info/ocmc/web/</link>
        <url>http://www.algo-prog.info/ocmc/web/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=benchmarks&amp;rev=1241705357&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-05-07T16:09:17+02:00</dc:date>
        <title>benchmarks</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=benchmarks&amp;rev=1241705357&amp;do=diff</link>
        <description>Sequentiel sur Core I7:
Chaque bench est lancé 1000 fois (boucle for dans le code ocaml)

 Bench  OCaml  oc4mc  fft   25.94  31.11 Kb   22.26  42.65 Nucleic   13.78  21.77 Sieve   5.39  6.27

i7 (4 Cores)
 Bench  OCaml  Oc4mc  Coef  F#  F# para   Coeff F#  C  C-OMP  Coeff C  Matmul 1000  13.29  3.26  4.07  9.28  2.411  3.85  9.20  2.27  4.05  Matmul 2000  133.03  36.39  3.62  87.28  24.9  3.62  82.59  19.80  4.17  Total        146.32  39.65  3.69   96.56  28.661  3.37    
Octo (7 Cores)</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=contact&amp;rev=1253653578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-09-22T23:06:18+02:00</dc:date>
        <title>contact</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=contact&amp;rev=1253653578&amp;do=diff</link>
        <description>*   dev@ocmc.algo-prog.info (Mathias Bourgoin, Benjamin Canou, Emmanuel Chailloux, Adrien Jonquet, Philippe Wang)</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=download&amp;rev=1266244161&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-15T15:29:21+02:00</dc:date>
        <title>download</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=download&amp;rev=1266244161&amp;do=diff</link>
        <description>These are snapshots for testing purpose only.

November 4th, 2009 version

Download link

without partial collection

oc4mc-smartpumpkin.tar.gz

	*  (feature) growing capable shared heap : if a huge allocation is needed, the heap grows such that it becomes possible (i.e. with system malloc limitation only) instead of going into an endless broken loop
	*  (feature) limited shrinking : the shared heap can never become smaller than its initial size</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=download_old&amp;rev=1246642004&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-07-03T19:26:44+02:00</dc:date>
        <title>download_old</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=download_old&amp;rev=1246642004&amp;do=diff</link>
        <description>We do not have an official version yet.
Currently, these are only snapshots for testing purpose only.

April 14th, 2009 version

Download link

oc4mc-20090414.tar.gz

	*  lighter patch (less than 100kB instead of greater than 800kB)

April 10th, 2009 version

Download link

oc4mc-20090410.tar.gz</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=faq&amp;rev=1253651493&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-09-22T22:31:33+02:00</dc:date>
        <title>faq</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=faq&amp;rev=1253651493&amp;do=diff</link>
        <description>What works

	*  Thread library (Mutex, Condition, Event, Thread)

Not implemented modules

	*  Gc
	*  Weak
	*  modules (other that thread modules) that were not reentrant are still not reentrant, such as Str for instance</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=faq_and_known_bugs&amp;rev=1246643137&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-07-03T19:45:37+02:00</dc:date>
        <title>faq_and_known_bugs</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=faq_and_known_bugs&amp;rev=1246643137&amp;do=diff</link>
        <description>What are the supported platforms ?

	*  Currently, we only support Linux x86-64bit architecture. We have not recently tested on Mac OS X Intel-64bit architecture, but it will probably not work. For instance, the last stable version of Debian (or Ubuntu) Linux x86-64bit should be fine.</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=garbage_collector_description&amp;rev=1238876995&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-04T22:29:55+02:00</dc:date>
        <title>garbage_collector_description</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=garbage_collector_description&amp;rev=1238876995&amp;do=diff</link>
        <description>*  default allocation is made in memory pages
	*  when memory pages are full, they are flushed into the shared memory heap
	*  shared values allocation are made directly in shared memory heap
	*</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=gci.mli&amp;rev=1248099495&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-07-20T16:18:15+02:00</dc:date>
        <title>gci.mli</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=gci.mli&amp;rev=1248099495&amp;do=diff</link>
        <description>type t = {
  page_size : int;
  n_pages : int;
  shared_size : int;
  partial_enabled : bool;
  shared_used : int;
  n_used_pages : int;
  pages_used : int;
  n_partial : int;
  n_full : int;
}
external dump_infos : unit -&gt; t = &quot;caml_gc_dump_infos&quot;
external enable_partial : bool -&gt; unit = &quot;caml_gc_enable_partial&quot;
external gc : unit -&gt; unit = &quot;caml_gc_do&quot;
val print_infos : out_channel -&gt; t -&gt; unit</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=implem&amp;rev=1246642711&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-07-03T19:38:31+02:00</dc:date>
        <title>implem</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=implem&amp;rev=1246642711&amp;do=diff</link>
        <description>Localisation des variables globales

	*  Une structure globale par thread (existante dans la lib de threads  originale réutilisée et augmentée)
	*  Depuis le C on accède à la structure du thread courant avec les  fonctions POSIX. Lorsqu'on passe du C à l'assembleur (à la  naissance du thread ainsi que lors des callbacks) on passe en  paramètre la structure locale à l'assembleur. L'assembleur utilise  ensuite le registre r14 pour accéder à tout moment par une simple  indirection aux données local…</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=index&amp;rev=1266244073&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-15T15:27:53+02:00</dc:date>
        <title>index</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=index&amp;rev=1266244073&amp;do=diff</link>
        <description>“OCaml4Multicore” is an OCaml modification to allow the use of parallel POSIX Threads with OCaml.
This started as an OCaml Summer Project 2008 funded by Jane Street Capital.



For performance reasons, OCaml4MultiCore is currently only distributed for AMD/Intel 64-bit architecture, as a patch to OCaml 3.10.2. A version working on Linux/x86-32bit, Linux/x86-64bit, MacOSX/x86-64bit is in development as a patch to OCaml 3.11.1.</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=installation&amp;rev=1246642118&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-07-03T19:28:38+02:00</dc:date>
        <title>installation</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=installation&amp;rev=1246642118&amp;do=diff</link>
        <description>(currently for testing purpose only)


	*  download &lt;http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.2.tar.gz&gt;
	*  download the package
	*  read the README file (included in the package)
	*  build (cf. README file)
	*  there will be a directory ./tests with a Makefile to test some programs. Read the Makefile, understand it, and run your own tests or those available in the directory.</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=log&amp;rev=1245252246&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-06-17T17:24:06+02:00</dc:date>
        <title>log</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=log&amp;rev=1245252246&amp;do=diff</link>
        <description>To do

	*  installation script
	*  benchmarks page
	*  documentation
	*  gc description

Events

	*  bug fix : some pthread_mutex*lock errors were not handled correctly, and some mutex were not used correctly (2009/05 — 2009/06/17)
	*  bug report : having too many threads leads to segmentation fault (2009/04 — 2009/05) (2009/06/17 : should be fixed)
	*  automatic fix for page_size and shared_size -&gt; multiple of 2 (2009/04/23)
	*  growing shared_heap (naively) (2009/04/21)
	*  bug fix extern.c (g…</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=manual&amp;rev=1238692966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-02T19:22:46+02:00</dc:date>
        <title>manual</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=manual&amp;rev=1238692966&amp;do=diff</link>
        <description>some information may still be relevant.


----------

----------

----------

----------

	*  Install ocaml4multicore on your system (you must use a 64-bits Linux system).


Here is the installation documentation.

To quickly test ocaml4multicore with our Stop and Copy Garbage Collector and our samples, jump to the last item of this section.</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=notes&amp;rev=1233588341&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-02-02T16:25:41+02:00</dc:date>
        <title>notes</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=notes&amp;rev=1233588341&amp;do=diff</link>
        <description>cd ~/oc4mc/ &amp;&amp; cd systhreads &amp;&amp; make libthreadsnat.a &amp;&amp; cd ../runtime &amp;&amp; cp ../systhreads/posix_n.o asmrun &amp;&amp; make &amp;&amp; cd .. &amp;&amp; cp runtime/asmrun/libasmrun.a out/lib/ocaml &amp;&amp; cp systhreads/libthreadsnat.a out/lib/ocaml &amp;&amp; cd runtime/gcs &amp;&amp; rm sc_par/libgc.a &amp;&amp; make</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=ocaml_for_multicore&amp;rev=1277848536&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-06-29T23:55:36+02:00</dc:date>
        <title>ocaml_for_multicore</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=ocaml_for_multicore&amp;rev=1277848536&amp;do=diff</link>
        <description>This project aims at allowing Objective Caml to take advantage of multicore architectures, notably those now commonly used (laptops, desktop PC).

News

	*  2010 spring-summer : (ocaml-3.12-svn) “from scratch”, making the runtime library fully reentrant, first without threads preoccupation
	*  2010 : (ocaml-3.11.1) adaptation of the modified runtime library for ocaml-3.11.1
	*  2009 : (ocaml-3.10.2) several working implementations for X86-64 (with or without partial collections)
	*  2008 : (ocam…</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=ocaml_for_multicore_architectures&amp;rev=1278082613&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-07-02T16:56:53+02:00</dc:date>
        <title>ocaml_for_multicore_architectures</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=ocaml_for_multicore_architectures&amp;rev=1278082613&amp;do=diff</link>
        <description>This project aims at allowing Objective Caml to take advantage of multicore architectures, notably those now commonly used in laptops and desktop PC.

News

	*  2010 spring-summer (current work, in progress) : (ocaml-3.12-svn) “from scratch”, making the runtime library fully reentrant, first without threads preoccupation
	*  early 2010 : (ocaml-3.11.1) adaptation to work on x84-32 and x84-64, with Linux and Mac OS X. Fairly unstable.
	*  late 2009 : (ocaml-3.11.1) adaptation of the modified runt…</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=readme&amp;rev=1248099159&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-07-20T16:12:39+02:00</dc:date>
        <title>readme</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=readme&amp;rev=1248099159&amp;do=diff</link>
        <description>(file included in the distribution)

To compile OC4MC:

	*  download ocaml-3.10.2 source : &lt;http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.2.tar.gz&gt;
	*  ocaml sources must be in the same folder as build.sh
	*  execute build.sh
//./build.sh//

The OC4MC modified compiler is in the 'out' folder.
To compile a program you MUST link it with a garbage collector (GC).
Our GC is in the 'runtime/gcs/sc_par' folder
An example can be found in the tests folder:</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=seatmark&amp;rev=1233583223&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-02-02T15:00:23+02:00</dc:date>
        <title>seatmark</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=seatmark&amp;rev=1233583223&amp;do=diff</link>
        <description>output


phil@d64:~/oc4mc/tests/Threads/Join$ time ./compute3.exe ; echo ; echo &quot;========&quot; ; echo ; time ./compute3.exe_orig 
start of 1
start of 2
start of 3
start of 4
start of 5
start of 6
start of 8
start of 7
end of 1
end of 7
end of 8
end of 3
end of 4
end of 6
end of 5
end of 2
end of all!

real	0m30.740s
user	2m7.312s
sys	0m0.392s

========

start of 1
start of 2start of 3start of 4start of 5
start of 6
start of 8
start of 7



end of 1
end of 3
end of 8end of 6
end of 4

end of 2
end of…</description>
    </item>
    <item rdf:about="http://www.algo-prog.info/ocmc/web/index.php?id=why_amd64&amp;rev=1238717617&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-03T02:13:37+02:00</dc:date>
        <title>why_amd64</title>
        <link>http://www.algo-prog.info/ocmc/web/index.php?id=why_amd64&amp;rev=1238717617&amp;do=diff</link>
        <description>(work in progress)



AMD64 designates the 64-bit evolution of the Intel 32-bit x86 architecture. AMD completely switched to 64 bit quite before Intel. And amd64.s is the name of the x86-64bit architecture specific file in OCaml's source code.


	*  More registers available
	*  Inline memory allocation in assembly for better performance
	*  Deprecates the x86-32bit architecture anyway
	*  Probably the most widely available multicore CPU architecture, as new x86-32bit compatible CPUs are all 64bi…</description>
    </item>
</rdf:RDF>

