Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add INSTALLING and README Markdown format #3

Open
wants to merge 1 commit into
base: release
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 17 additions & 10 deletions INSTALLING → INSTALLING.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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`
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fwiw


You must have a chip with Intel's Advanced Vector Instructions (AVX).
This includes Sandy Bridge and newer Intel processor (released
Expand Down
44 changes: 0 additions & 44 deletions README

This file was deleted.

44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -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 `<cilk/cilk.h>`.
* 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<em>[at]</em>opencilk.org. Other queries and
comments should be emailed to contact<em>[at]</em>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