Skip to content
Merged
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
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,11 @@ Please **add the according license header** snippet to your *new files*:
- the default project name ist `PIConGPU` (case sensitive!) and adds the GPLv3+
only.

Files in the directory `thirdParty/` are only imported from remote repositories
as written in our [LICENSE](LICENSE.md). If you want to improve them, submit
your pull requests there and open an issue for our **maintainers** to update
to a new version of the according software.

*******************************************************************************

Commit Rules
Expand Down
51 changes: 43 additions & 8 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
PIConGPU - Licenses
================================================================================

**Copyright 2009-2014** Florian Berninger, Heiko Burau, Robert Dietrich, Wen Fu,
Anton Helm, Wolfgang Hoehnig, Axel Huebl, Remi Lehe,
Richard Pausch, Felix Schmitt, Benjamin Schneider,
Joseph Schuchart, Klaus Steiniger, Rene Widera
**Copyright 2009-2015** Florian Berninger, Heiko Burau, Michael Bussmann,
Alexander Debus, Robert Dietrich, Carlchristian Eckert,
Wen Fu, Marco Garten, Anton Helm, Wolfgang Hoehnig,
Axel Huebl, Maximilian Knespel, Remi Lehe,
Richard Pausch, Felix Schmitt, Conrad Schumann,
Benjamin Schneider, Joseph Schuchart, Klaus Steiniger,
Rene Widera, Benjamin Worpitz

See [active team](README.md#active-team).

PIConGPU is a program collection containing the main simulation, independent
scripts and auxiliary libraries. If not stated otherwise explicitly, the
following licenses apply:


### PIConGPU

The **main simulation** is licensed under the **GPLv3+**. See
[COPYING](COPYING). If not stated otherwise explicitly, that affects:
- `buildsystem`
Expand All @@ -20,17 +26,46 @@ The **main simulation** is licensed under the **GPLv3+**. See
- `src/picongpu`
- `src/tools` (without `splash2txt`)
- `src/mpiInfo`


### PMacc & splash2txt

All **libraries** are *dual licensed* under the **GLPv3+ and LGPLv3+**. See
[COPYING](COPYING) and [COPYING.LESSER](COPYING.LESSER).
If not stated otherwise explicitly, that affects:
- `src/libPMacc`
- `src/tools/splash2txt`

**other licenses**:
- `src/cuda_memtest`:

### Third party software and other licenses

We include a list of (GPL-) compatible third party software for the sake
of an easier install of `PIConGPU`. Contributions to these parts of the
repository should *not* be made in the `thirdParty/` directory but in
*their according repositories* (that we import).

- `thirdParty/mallocMC`:
mallocMC is a fast memory allocator for many core accelerators and was
originally forked from the `ScatterAlloc` project.
It is licensed under the *MIT License*.
Please visit
https://github.com/ComputationalRadiationPhysics/mallocMC
for further details and contributions.

- `thirdParty/cmake-modules`:
we published a set of useful CMake modules that are not in the
CMake mainline under the *ISC license* at
https://github.com/ComputationalRadiationPhysics/cmake-modules
for contributions or inclusion in PIConGPU and other projects.

- `thirdParty/cuda_memtest`:
CUDA MemTest is an *independent program* developed by the University
Illinois, published under the *Illinois Open Source License*.
Please refer to the file `src/cuda_memtest/README` for license information.
Please refer to the file `thirdParty/cuda_memtest/README` for license information.
We redistribute this modified version of CUDA MemTest under the same license
[src/cuda_memtest/README](src/cuda_memtest/README).
[thirdParty/cuda_memtest/README](thirdParty/cuda_memtest/README).
The original release was published at
http://sourceforge.net/projects/cudagpumemtest
and our modified version is hosted at
https://github.com/ComputationalRadiationPhysics/cuda_memtest
for further reference.
3 changes: 2 additions & 1 deletion src/libPMacc/examples/gameOfLife2D/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ project (GameOfLife)
set(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/" "$ENV{MPI_ROOT}" "$ENV{CUDA_ROOT}" "$ENV{BOOST_ROOT}")

# own modules for find_packages
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdParty/cmake-modules/)

IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}" CACHE PATH "install prefix" FORCE)
Expand Down
19 changes: 17 additions & 2 deletions src/picongpu/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ set(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/" "$ENV{MPI_ROOT}"
"$ENV{CUDA_ROOT}" "$ENV{BOOST_ROOT}" "$ENV{HDF5_ROOT}" "$ENV{VT_ROOT}")

# own modules for find_packages
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/../../thirdParty/cmake-modules/)


################################################################################
Expand Down Expand Up @@ -84,6 +85,20 @@ if(CUDA_KEEP_FILES)
endif(CUDA_KEEP_FILES)


################################################################################
# Find mallocMC
################################################################################

find_package(mallocMC 2.1.0)

if(mallocMC_FOUND)
include_directories(SYSTEM ${mallocMC_INCLUDE_DIRS})
else(mallocMC_FOUND)
message(STATUS "Using mallocMC from thirdParty/ directory")
include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdParty/mallocMC/src/include)
endif(mallocMC_FOUND)


################################################################################
# VampirTrace
################################################################################
Expand Down Expand Up @@ -286,7 +301,7 @@ endif(PARAM_OVERWRITES)
set(SAME_NVCC_FLAGS_IN_SUBPROJECTS OFF)
find_path(CUDA_MEMTEST_DIR
NAMES CMakeLists.txt
PATHS "${CMAKE_CURRENT_SOURCE_DIR}/../cuda_memtest"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}/../../thirdParty/cuda_memtest"
DOC "path to cuda_memtest"
)

Expand Down
2 changes: 1 addition & 1 deletion src/tools/png2gas/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wno-pmf-conversions -Wno-depre

# own modules for find_packages
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/)
${CMAKE_CURRENT_SOURCE_DIR}/../../../thirdParty/cmake-modules/)


################################################################################
Expand Down
2 changes: 1 addition & 1 deletion src/tools/splash2txt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ set(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/" "$ENV{BOOST_ROOT}" "$ENV{HDF5

# own modules for find_packages
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/)
${CMAKE_CURRENT_SOURCE_DIR}/../../../thirdParty/cmake-modules/)

include_directories(include)

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
16 changes: 16 additions & 0 deletions thirdParty/mallocMC/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Compiled Object files
*.slo
*.lo
*.o

# Compiled Dynamic libraries
*.so
*.dylib

# Compiled Static libraries
*.lai
*.la
*.a

*~
/nbproject
31 changes: 31 additions & 0 deletions thirdParty/mallocMC/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
language: cpp

compiler:
- gcc

env:
global:
- INSTALL_DIR=~/mylibs

script:
- mkdir build_tmp && cd build_tmp
- cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR $TRAVIS_BUILD_DIR
- make
- make install
- make examples

before_script:
- sudo apt-get update -qq
- sudo apt-get install -qq build-essential
- sudo apt-get install -qq gcc-4.4 g++-4.4
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.4
- gcc --version && g++ --version
- sudo apt-get install -qq nvidia-common
- sudo apt-get install -qq nvidia-current
- sudo apt-get install -qq nvidia-cuda-toolkit nvidia-cuda-dev
- sudo apt-get install -qq libboost1.48-dev
- sudo find /usr/ -name libcuda*.so

after_script:
- ls -halR $INSTALL_DIR

98 changes: 98 additions & 0 deletions thirdParty/mallocMC/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Change Log / Release Log for mallocMC
================================================================

2.1.0crp
-------------
**Date:** 2015-02-11

This release fixes some bugs that occured after the release of 2.0.1crp and reduces the interface to improve interoperability with the default CUDA allocator.
We closed all issues documented in
[Milestone *New Features*](https://github.com/ComputationalRadiationPhysics/mallocMC/issues?milestone=3&state=closed)

### Changes to mallocMC 2.0.1crp

**Features**
- the possibility to overwrite the default implementation of new/delete and malloc/free was removed #72. **This changes the interface**, since users are now always forced to call `mallocMC::malloc()` and `mallocMC::free()`. This is intended to improve readability and allows to use the CUDA allocator inside mallocMC.
- the policy *Scatter* now places the onpagetables data structure at the end of a page. This can greatly improve performance when using large pages and `resetfreedpages=true` #80

**Bug fixes**
- in the policy *Scatter*, `fullsegments` and `additional_chunks` could grow too large in certain configurations #79

**Misc:**
- See the full changes at https://github.com/ComputationalRadiationPhysics/mallocMC/compare/2.0.1crp...2.1.0crp


2.0.1crp
-------------
**Date:** 2015-01-13

This release fixes several bugs that occured after the release of 2.0.0crp.
We closed all issues documented in
[Milestone *Bugfixes*](https://github.com/ComputationalRadiationPhysics/mallocMC/issues?milestone=4&state=closed)

### Changes to mallocMC 2.0.0crp

**Bug fixes**
- page table metadata was not correctly initialized with 0 #70
- freeing pages would not work under certain circumstances #66
- the bitmask in a page table entry could be wrong due to a racecondition #62
- not all regions were initialized correctly #60
- getAvailableSlots could sometimes miss blocks #59
- the counter for elements in a page could get too high due to a racecondition #61
- Out of Memory (OOM) Policy sometimes did not recognize allocation failures correctly #67

**Misc:**
- See the full changes at https://github.com/ComputationalRadiationPhysics/mallocMC/compare/2.0.0crp...2.0.1crp


2.0.0crp
-------------
**Date:** 2014-06-02

This release introduces mallocMC, which contains the previous algorithm and
much code from ScatterAlloc 1.0.2crp. The project was renamed due to massive
restructurization and because the code uses ScatterAlloc as a reference
algorithm, but can be extended to include other allocators in the future.
We closed all issues documented in
[Milestone *Get Lib ready for PIConGPU*](https://github.com/ComputationalRadiationPhysics/mallocMC/issues?milestone=2&state=closed)

### Changes to ScatterAlloc 1.0.2crp

**Features**
- completely split into policies #17
- configuration through structs instead of macro #17
- function `getAvailableSlots()` #5
- selectable data alignment #14
- function `finalizeHeap()` #11

**Bug fixes:**
- build warning for cmake #33

**Misc:**
- verification code and examples #35
- install routines #4
- See the full changes at https://github.com/ComputationalRadiationPhysics/mallocMC/compare/1.0.2crp...2.0.0crp


1.0.2crp
-------------
**Date:** 2014-01-07

This is our first bug fix release.
We closed all issues documented in
[Milestone *Bug fixes*](https://github.com/ComputationalRadiationPhysics/mallocMC/issues?milestone=1&state=closed)

### Changes to 1.0.1

**Features:**
- added travis-ci.org support for compile tests #7

**Bug fixes:**
- broken cmake/compile #1
- g++ warnings #10
- only N-1 access blocks used instead of N #2
- 32bit bug: allocate more than 4GB #12

**Misc:**
See the full changes at
https://github.com/ComputationalRadiationPhysics/scatteralloc/compare/1.0.1...1.0.2crp
Loading