Extended 10 runtime, ScaleGraph library and X10DT are available at our download page.
ScaleGraph uses MPI environment as its transport layer. ScaleGraph has been developed mainly on MVAPICH2 1.9 (License: BSD License). For installation, please refer to the installation page of respective MPI implementation.
Because ScaleGraph integrates another library such as ARPACK and ParMetis in which MPI library is also used, to make X10 MPI transport layer functions properly with those libraries, the MPI multithreaded feature in MPI implementation is necessary. The MPI implementations that do not support MPI multithreaded feature such as OpenMPI are not able to use with ScaleGraph library. The recommended MPI implementations are as follows:
ARPACK library is required by Spectral Clustering algorithm. From ScaleGraph 2.2 release, users are not required to manually install the ARPACK library; the library will be downloaded, complied and installed by the Makefile in ScaleGraph home folder. For more information about ARPACK, please refer to ARPACK web site.
$ cd x10.dist $ ant -DX10RT_MPI=true dist
For installation, download ScaleGraph source code from download page and then extract the archive to a folder of your choice. Go to ScaleGraph home folder and then run make.
$ cd scalegraph $ make
The Makefile will download and build ARPACK and ParMetis libraries and then build ScaleGraph linkable library (X10 library). If make run successfully, the third-party libraries and ScaleGraph linkable library will be placed in SCALEGRAPH_HOME/lib folder and SCALEGRAPH_HOME/x10lib folder, respectively.
Include SCALEGRAPH_HOME/lib folder in LD_LIBRARY_PATH variable.
X10DT is an IDE for developing X10 applications. The distribution includes Eclipse, X10DT plugins, and X10 compiler and runtime. You can get X10DT for ScaleGraph from download page. After downloading, extract zip file to a folder of your choice. To run X10DT, execute 'x10dt'.
Note: The official X10DT from X10 page are not compatible with ScaleGraph library.
You can compile source code by x10c++, the X10 compiler for C++ back end, and supply -x10rt mpi, -x10lib, and path_to_scalegraph_home/x10lib/ScaleGraph.properties . In some cases, the compiler might run out of memory, you can supply -J-Xmx2G to allow the compiler to allocate more memory.
$ x10c++ -J-Xmx2G -x10rt mpi -x10lib SCALEGRAPH_HOME/x10lib/ScaleGraph.properties your_source_files.x10
You can include debug symbols and optimize your application by supplying additional flags, i.e,
$ x10c++ -cxx-prearg -g -J-Xmx2G -x10rt mpi -O -NO_CHECKS -x10lib SCALEGRAPH_HOME/x10lib/ScaleGraph.properties your_source_files.x10
SX10 2.3.1_2.2 which is released along with ScaleGraph 2.2 has the fast compilation feature. The feature speeds up the compilation by parallel compiling C++ source files. Users can use this feature by supply -make -make-arg -j
$ x10c++ -J-Xmx2G -x10rt mpi -make -make-arg -j -x10lib SCALEGRAPH_HOME/x10lib/ScaleGraph.properties your_source_files.x10
You can limit the number parallel compilation tasks by supply a number after -j as shown below.
$ x10c++ -J-Xmx2G -x10rt mpi -make -make-arg -j4 -x10lib SCALEGRAPH_HOME/x10lib/ScaleGraph.properties your_source_files.x10
Your executable from the compilation is an MPI executable, you can run it by MPI launcher, e.g., mpirun, mpirun_rsh. X10_NTHREADS and GC_NPROCS are the environment variables for X10 runtime to determine the number of worker threads and the number of garbage collector threads, respectively.
$ mpirun_rsh -n 4 -hostfile HOSTS X10_NTHREADS=8 GC_NPROCS=4 your_app app_arguments
To run spectral clustering, you are required to supply X10RT_MPI_THREAD_MULTIPLE=true.