* --------------------------------------------------------------------------- * * CAMPAIGN * * --------------------------------------------------------------------------- * * This is part of the CAMPAIGN data clustering library originating from * * Simbios, the NIH National Center for Physics-Based Simulation of Biological * * Structures at Stanford, funded under the NIH Roadmap for Medical Research, * * grant U54 GM072970 (See https://simtk.org), and the FEATURE Project at * * Stanford, funded under the NIH grant LM05652 * * (See http://feature.stanford.edu/index.php). * * * * Portions copyright (c) 2010 Stanford University and the Authors. * * Authors: Marc Sosnick * * Contributors: Kai J. Kolhoff, William Hsu * * * * This program is free software: you can redistribute it and/or modify it * * under the terms of the GNU Lesser General Public License as published by * * the Free Software Foundation, either version 3 of the License, or (at your * * option) any later version. * * * * This program is distributed in the hope that it will be useful, but WITHOUT * * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * * License for more details. * * * * You should have received a copy of the GNU Lesser General Public License * * along with this program. If not, see . * * --------------------------------------------------------------------------- * $Id$ CAMPAIGN Developer Distribution Introduction This README file describes the developer portion of the CAMPIAGN project's source distribution. This does file does NOT pertain to the standard distribution of the CAMPAIGN library, whose source files are located in the install directory. CAMPAIGN Project Directory Structure The CAMPAIGN developer distribution has the following directory structure: trunk: Contains current development work on new features (e.g. new clustering methods). branches: Contains forks for each release. There is a directory for each release under the branches directory, with the name of the release's version (e.g. v1.0, v1.1, etc.). These version directories are an exact copy of the trunk directory at the time of that version's release. branch/version directories are to be used to debug each (pre)release, with corrections being backfilled into the trunk directory as necessary. tags: Contains snapshots of each general release. As with branches, the tags directory contains a directory for each relase, named with the release's version number (e.g. campaign-1.0.0, campaign-1.0.1, etc.,). Each version directory under tags contains the .tar.gz file from the release directory, as well as another directory, src, which contains the unzipped .tar.gz dist file. Under trunk (and branches): clustering methods: Each clustering method has its own individual subdirectory. The sub- directory's name is comprised of the clustering method's name (e.g. kmeans, kcenter), with the type of system on which it runs (i.e. CPU or GPU) appended. Therefore kmeans running on the GPU is named kmeansGPU. In each of these directories, code for the library is contained in a file of the same name of the directory, with either a .cu or .cpp extension. Each clustering method should also have an example/testing file; the name for this file is the name of the directory with Main appended, and a .cc extension. Other files for each method, such as test harnesses, etc., can go in these clustering method directories. These files must be able to be made individually in the clustering method's directory for development, as well as when copied into the install/campaign directory for inclusion in the library. util: This directory contains files pertinent to all the clustering methods and the library as a whole, such as timing, ad data and hardware handling routines. install: This directory contains the files that will be tarred/zipped and distributed in the standard (non-developer) distribution. This directory contains autotools files, as well as the source files (in the campaign directory) and example files (in the examples directory). The campaign and examples are populated by performing a make distribution from the dev directory (see below). Installation and Use After installing the code onto your system using SVN (see simbios.org), you simply go to the campaign/trunk/dev directory. From there, modify the make file to point to the appropriate locations on your system for the CUDA Developer's package, as well as the CUDA development libraries. Then you can use the make file to do the following: make will descend into each directory and make as appropriate in that directory. make clean will descend into each directory and remove all non-source code (object, executable, temporary and intermediate) files. make distribution will copy source code for distribution from each directory to the install/campaign directory, and perform the following actions on each source file: 1. Files named xxxxxMain.cc will be copied to the install/examples direcotry and be renamed xxxxx.cc (e.g. kcentersMain.cc will be copied to install/examples/kcenters.cc). You can also, from each clustering method's directory, type make or make clean for that particular clustering method.