<commit_before>cuIBM - A GPU-based Immersed Boundary Method code
=================================================

*Updated: June 10th, 2013*

Currently, cuIBM runs only on Linux and has been tested on Ubuntu 11.10. It is not supported on Windows and Mac OS X.

Installation instructions
-------------------------

### Dependencies

Please ensure that the following dependencies are installed before compiling cuIBM:

* Mercurial revision control tool (`hg`)
* GNU C++ Compiler(`g++`)
* NVIDIA's CUDA Compiler (`nvcc`)
* CUSP Library (available [here](http://code.google.com/p/cusp-library/))

#### Mercurial (`hg`)

Install the package `mercurial`. On Ubuntu, this can be done via the Terminal using the following command:

    > sudo apt-get install mercurial

#### GNU C++ Compiler (`g++`)

Install `g++` using the following command:

    > sudo apt-get install g++

Check the version of G++ installed:

    > g++ --version

Other development and version control tools can be installed by following the instructions under Step 1 in the [CompilingEasyHowTo](https://help.ubuntu.com/community/CompilingEasyHowTo) page on the Ubuntu Community Help Wiki. Software developers will find it useful to install all of them.

#### NVIDIA's CUDA Compiler (`nvcc`)

[Download and install](https://developer.nvidia.com/cuda-downloads) the CUDA Toolkit.

Check the version of NVCC installed:

    > nvcc --version

cuIBM has been tested and compiles with NVCC versions 4.1, 4.2 and 5.0.

**IMPORTANT**: `nvcc-4.1` is compatible only with G++ version 4.5 (`g++-4.5`) or below. `nvcc-4.2` and `nvcc-5.0` are compatible with `g++-4.6` and below.

#### CUSP Library

CUSP is a library that provides routines to perform sparse linear algebra computations on Graphics Processing Units. It is written using the CUDA programming language and runs code on compatible NVIDIA GPUs. The version of CUSP that is currently used by cuIBM is hosted on [Google Code](http://code.google.com/p/cusp-library/).

The instructions here assume that the CUSP library is installed in a folder called `lib` in the home directory, but any other folder with write permissions can be used. Create a local copy of the CUSP library using the following commands:

    > mkdir -p $HOME/lib
    > cd $HOME/lib
    > hg clone https://code.google.com/p/cusp-library/

The above command will clone the latest revision of CUSP hosted on Google Code, i.e. revision 558. This is the version that cuIBM has been tested with and works.

The CUSP library is no longer being actively maintained on the Google Code website. It is currently hosted on [GitHub](https://github.com/cusplibrary/cusplibrary).

### Compiling cuIBM

cuIBM is currently hosted on [BitBucket](https://bitbucket.org/anushk/cuibm). Run the following commands to create a local copy in the folder `src` in the home directory (any other folder with appropriate read/write permissions can also be used):

    > mkdir -p $HOME/src
    > cd $HOME/src
    > hg clone https://bitbucket.org/anushk/cuibm

To compile, set the environment variable `CUSP_DIR` to point to the directory with the CUSP library. For a `bash` shell, add the following line to the file `~/.bashrc` or `~/.bash_profile`:

    export CUSP_DIR=/path/to/cusp/folder

which for the above case would be `$HOME/lib/cusp-library`

And reload the file:

    > source ~/.bashrc

Switch to the cuIBM directory:

    > cd /path/to/cuibm/folder

The path as per the above instructions is `$HOME/src/cuibm`.
<commit_msg>Edited the README<commit_after>cuIBM - A GPU-based Immersed Boundary Method code
=================================================

*Updated: November 19th, 2013*

Currently, cuIBM runs only on Linux and has been tested on Ubuntu 12.04. It is not supported on Windows and Mac OS X.

Installation instructions
-------------------------

### Dependencies

Please ensure that the following dependencies are installed before compiling cuIBM:

* Mercurial revision control tool (`hg`)
* GNU C++ Compiler(`g++`)
* NVIDIA's CUDA Compiler (`nvcc`)
* CUSP Library (available [here](https://github.com/cusplibrary/cusplibrary))

#### Mercurial (`hg`)

Install the package `mercurial`. On Ubuntu, this can be done via the Terminal using the following command:

    > sudo apt-get install mercurial

#### GNU C++ Compiler (`g++`)

Install `g++` using the following command:

    > sudo apt-get install g++

Check the version of G++ installed:

    > g++ --version

Other development and version control tools can be installed by following the instructions under Step 1 in the [CompilingEasyHowTo](https://help.ubuntu.com/community/CompilingEasyHowTo) page on the Ubuntu Community Help Wiki. Software developers will find it useful to install all of them.

#### NVIDIA's CUDA Compiler (`nvcc`)

[Download and install](https://developer.nvidia.com/cuda-downloads) the CUDA Toolkit.

Check the version of NVCC installed:

    > nvcc --version

cuIBM has been tested and compiles with NVCC versions 4.1, 4.2 and 5.0.

**IMPORTANT**: `nvcc-4.1` is compatible only with G++ version 4.5 (`g++-4.5`) or below. `nvcc-4.2` and `nvcc-5.0` are compatible with `g++-4.6` and below.

#### CUSP Library

CUSP is a library that provides routines to perform sparse linear algebra computations on Graphics Processing Units. It is written using the CUDA programming language and runs code on compatible NVIDIA GPUs. 

CUSP is currently hosted on [GitHub](https://github.com/cusplibrary/cusplibrary). cuIBM has been tested and works with version 0.4.0, available for download [here](https://github.com/cusplibrary/cusplibrary/archive/0.4.0.zip).

The instructions here assume that the CUSP library is to be installed in the folder `$HOME/lib`, but any other folder with write permissions can be used. Create a local copy of the CUSP library using the following commands:

    > mkdir -p $HOME/lib
    > cd $HOME/lib
    > wget https://github.com/cusplibrary/cusplibrary/archive/0.4.0.zip
    > unzip 0.4.0.zip

The folder `$HOME/lib/cusplibrary-0.4.0` is now created.

If you wish to use to latest version of CUSP, it can be cloned from the GitHub repository.

    > cd $HOME/lib
    > git clone https://github.com/cusplibrary/cusplibrary.git

which creates the folder `$HOME/lib/cusplibrary`.

### Compiling cuIBM

cuIBM is currently hosted on [BitBucket](https://bitbucket.org/anushk/cuibm). Run the following commands to create a local copy in the folder `$HOME/src` (or any other folder with appropriate read/write/execute permissions):

    > mkdir -p $HOME/src
    > cd $HOME/src
    > hg clone https://bitbucket.org/anushk/cuibm

To compile, set the environment variable `CUSP_DIR` to point to the directory with the CUSP library. For a `bash` shell, add the following line to the file `~/.bashrc` or `~/.bash_profile`:

    export CUSP_DIR=/path/to/cusp/folder

which for the present case would be `$HOME/lib/cusplibrary-0.4.0`

And reload the file:

    > source ~/.bashrc

Switch to the cuIBM directory:

    > cd /path/to/cuibm/folder

The path as per the above instructions is `$HOME/src/cuibm`.

{'fraction_non_alphanumeric': 0.11534106991225587, 'fraction_numerical': 0.011180300028304557, 'mean_word_length': 3.870434183321847, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 30, 'https://': 15, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 5, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '391967', 'n_tokens_mistral': 2245, 'n_tokens_neox': 2025, 'n_words': 884}