diff --git a/INSTALLING b/INSTALLING.md similarity index 69% rename from INSTALLING rename to INSTALLING.md index 88dd284..0c0bc10 100644 --- a/INSTALLING +++ b/INSTALLING.md @@ -1,4 +1,4 @@ -Welcome to OpenCilk. +# Welcome to OpenCilk This prerelease version of OpenCilk is available as source code in three git repositories. You will need 1.5 GB of space for the source @@ -7,34 +7,41 @@ will need a compiler capable of building LLVM. Any compiler you are likely to have installed on a modern multicore system should work. This version only supports 64 bit x86 on Linux or FreeBSD. +## Install from source Clone these repositories into sibling directories: -git clone -b opencilk/beta3 https://github.com/OpenCilk/infrastructure -git clone -b opencilk/beta3 --single-branch https://github.com/OpenCilk/opencilk-project +`git clone -b opencilk/beta3 https://github.com/OpenCilk/infrastructure` + +`git clone -b opencilk/beta3 --single-branch https://github.com/OpenCilk/opencilk-project` Put the runtime into a subdirectory of the compiler: -git clone -b opencilk/beta3 -- https://github.com/OpenCilk/cheetah opencilk-project/cheetah +`git clone -b opencilk/beta3 -- https://github.com/OpenCilk/cheetah opencilk-project/cheetah` -Run infrastructure/tools/build with two or three arguments. The first +Run `infrastructure/tools/build` with two or three arguments. The first argument is the absolute pathname of the parent directory of the repositories. The second argument is the pathname of a directory to build OpenCilk. The third argument, if present, tells the build system how many parallel jobs to run. Default parallelism is 10. -For example, +For example: + +After completing `git clone` as above: -$ ...git clone as above... -$ infrastructure/tools/build `pwd` `pwd`/build 60 +``$ infrastructure/tools/build `pwd` `pwd` /build 60`` OpenCilk takes a few CPU-hours to build on a modern system -- less than 10 minutes on a 24 core Ryzen with a fast disk. It might take all day single threaded on an older machine. +--- + ## Usage -You can run the compiler out of its build tree, adding "/bin/clang" to -the build directory name. +You can run the compiler out of its build tree, adding `/bin/clang` to +the build directory name. For example: + +`./build/bin/clang fib.c -o fib -O3 -fopencilk` You must have a chip with Intel's Advanced Vector Instructions (AVX). This includes Sandy Bridge and newer Intel processor (released diff --git a/README b/README deleted file mode 100644 index 9156bb5..0000000 --- a/README +++ /dev/null @@ -1,44 +0,0 @@ -Welcome to OpenCilk. - -This beta version is meant for experienced Cilk users running -Unix/Linux on modern x86_64 processors (e.g., Haswell, Excavator, -or newer). This version has been tested on Ubuntu 18.04, FreeBSD 12.1, -Fedora 30, and Mac OS X 10.15. - -Here is a summary of features in this version of OpenCilk: -* The cilk_spawn, cilk_sync, and cilk_for keywords are enabled by using - the -fopencilk command-line argument and including . -* The compiler is based on LLVM 9 and supports the usual clang options. -* Both C and C++ are supported. -* Prototype support for C++ exceptions is included. -* Reducer hyperobjects are supported using the Intel Cilk Plus - reducer library -- i.e., the hyperobject headers from Intel Cilk Plus - -- except that it is not valid to reference the view of a C reducer - after calling CILK_C_UNREGISTER_REDUCER. - -Instructions for building OpenCilk from source are in - https://github.com/OpenCilk/infrastructure/blob/release/INSTALLING - -Scripts for building a Docker image with OpenCilk are located in - https://github.com/OpenCilk/infrastructure/blob/release/docker - -A copy of the build instructions and this document are in - https://github.com/OpenCilk/infrastructure - -Some simple demo Cilk programs are available at - https://github.com/OpenCilk/tutorial - -Additional demo Cilk programs are available at - https://github.com/OpenCilk/applications - -Bug reports should be emailed to bugs@opencilk.org. Other queries and -comments should be emailed to contact@opencilk.org. - -The OpenCilk development team: -Tao B. Schardl, MIT - Director, Chief Architect -I-Ting Angelina Lee, WUSTL - Director, Runtime Architect -John F. Carr, consultant - Senior Programmer -Dorothy Curtis, MIT - Project Manager -Charles E. Leiserson, MIT - Executive Director -Alexandros-Stavros Iliopoulos, postdoc, MIT -Grace Q. Yin, intern, MIT diff --git a/README.md b/README.md new file mode 100644 index 0000000..5b899d8 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# Welcome to OpenCilk + +This beta version is meant for experienced Cilk users running +Unix/Linux on modern x86_64 processors (e.g., Haswell, Excavator, +or newer). This version has been tested on Ubuntu 18.04, FreeBSD 12.1, +Fedora 30, and Mac OS X 10.15. + +Here is a summary of features in this version of OpenCilk: +* The `cilk_spawn`, `cilk_sync`, and `cilk_for` keywords are enabled by using + the `-fopencilk` command-line argument and including ``. +* The compiler is based on LLVM 9 and supports the usual clang options. +* Both C and C++ are supported. +* Prototype support for C++ exceptions is included. +* Reducer hyperobjects are supported using the Intel Cilk Plus + reducer library -- i.e., the hyperobject headers from Intel Cilk Plus + -- except that it is not valid to reference the view of a C reducer + after calling CILK_C_UNREGISTER_REDUCER. + +## Install +[Instructions](https://github.com/OpenCilk/infrastructure/blob/release/INSTALLING.md) for building OpenCilk **from source**. + + +## Docker +[Scripts](https://github.com/OpenCilk/infrastructure/blob/release/docker) for building a Docker image with OpenCilk. + + +## Examples +Some simple [demo Cilk programs](https://github.com/OpenCilk/tutorial). + +[Additional demo](https://github.com/OpenCilk/applications) Cilk programs. + +--- + +Bug reports should be emailed to bugs[at]opencilk.org. Other queries and +comments should be emailed to contact[at]opencilk.org. + +The OpenCilk development team:\ +Tao B. Schardl, MIT - Director, Chief Architect\ +I-Ting Angelina Lee, WUSTL - Director, Runtime Architect\ +John F. Carr, consultant - Senior Programmer\ +Dorothy Curtis, MIT - Project Manager\ +Charles E. Leiserson, MIT - Executive Director\ +Alexandros-Stavros Iliopoulos, postdoc, MIT\ +Grace Q. Yin, intern, MIT