Skip to content

ZoltanHandsOnTutorial

Sean Deal edited this page Aug 18, 2015 · 9 revisions

Zoltan Hands-on Tutorial

First things first:

  • The Zoltan library is a collection of data management services for parallel, unstructured, adaptive, and dynamic applications. It simplifies the load-balancing, data movement, unstructured communication, and memory usage difficulties that arise in dynamic applications such as adaptive finite-element methods, particle methods, and crash simulations.
  • Zoltan can be downloaded as a standalone library from the http://www.cs.sandia.gov/~web1400/1400_download.html. Zoltan is also part of the Trilinos project. For information on the Trilinos project visit the official Trilinos website.
  • For future reference, a lot of information can be found on the Zoltan page.

Let's dive in, you have two options:

  • WebTrilinos

  • Trilinos 10.7 (dev), CUDA-enabled

    • In addition to the C++ interfaces, a Matrix Portal interface and a Python interface are also available.
    • Access to this site is password protected. Login information will be given during live tutorials as needed.
    • Reminder: Use Ctrl+A to highlight all the example code, Ctrl+C to copy it, and Ctrl+V to paste it in the WebTrilinos window.
    • Download and build the examples on your machine
      1. Download Trilinos
      2. Download and install CMake (if not already done).
      • The latest CMake release can be downloaded from here.
      1. Download and install Clapack (if you don't have LAPACK and BLAS already).
      • Get Clapack from here.
      • Use CMake to build Clapack.
      1. Build and install Trilinos.
      • An example script is here.
      • You can find other scripts in the Trilinos distribution Trilinos/sample_scripts directory.
      • You can also use the CMake gui, or the text-gui ccmake.
      1. Get Makefile from here.
      • Learn about the Makefile and the Makefile.export system here.
      • You can find the Makefile.export.package_name files once you have built and installed Trilinos.
      • They will be in the include directory of your installation directory.
      • Example: TrilinosInstall/include/Makefile.export.Epetra.
      1. Customize the Makefile to your situation (the example Makefile uses only the Epetra package, but Makefile.export.package_name files are available for all packages).
      2. Add Example code into a file called main.cpp and build away!

Now for some examples:

  1. Load balancing using Zoltan * Example that uses Recursive Coordinate Bisection in Zoltan to partition a mesh input * Example that uses Graph Partitioning in Zoltan to partition a graph input * Example that uses Hypergraph Partitooning in Zoltan to partition a hypergraph input * Example that uses Graph Repartioning in Zoltan to repartition a graph input * Example that uses Graph Partitioning in Zoltan to partition a graph input and migrate the data

  2. Matrix Partitioning using Isorropia * Example that partitions an Epetra matrix in Trilinos and redistributes the matrix

Learning more:

Wiki Pages
Trilinos Hands On Tutorial
[Zoltan Hands On Tutorial] (ZoltanHandsOnTutorial)

Links
Trilinos Home Page
Trilinos "Getting Started"

Clone this wiki locally