Skip to content
Snippets Groups Projects
Commit d04ecf8c authored by Rob McGibbon's avatar Rob McGibbon Committed by Matthieu Schaller
Browse files

Add user map

parent 845004a7
No related branches found
No related tags found
1 merge request!21Add user map
Showing with 228 additions and 487 deletions
......@@ -8,3 +8,6 @@ env/*
data/about.yaml
data/pubs.yaml
*.pyc
gallery/*
user_map/*
......@@ -8,6 +8,9 @@ This is the website for the SWIFT project. You can build the website by doing th
+ Activate it (`` source env/bin/activate ``) [note to deactivate you want to use the `` deactivate `` keyword in your shell]
+ Use that virtual environment to install the required packages (`` pip install -r requirements.txt ``)
+ If ```pandoc``` is installed on your machine, I would recommend also installing ```pypandoc```. If not, then the system will use the ```mistune``` python-only renderer.
+ Place all the images listed in `data/gallery.yaml` in the `gallery` directory
+ Run `python generate_map.py` to generate the map of swift users
+ Run `python query.py rLY4HeXMXttDOSedTGrYuRufATu2gDwgE84Hqy3B` to generate the publication list
+ You can then compile the website by running `` python3 compiler.py `` from this directory. The conpiled files will be placed in `` ./compiled ``, and they can then simply be uploaded to a webserver. It is a fully static website so no need to worry about installing anything!
Adding to the Website
......
......@@ -5,7 +5,7 @@
"""
import os
from distutils.dir_util import copy_tree
from shutil import copytree
import jinja2
import yaml
......@@ -130,9 +130,10 @@ def copy_static(directories, output_dir):
""" Copies the (static) files from the original directory to the output """
if isinstance(directories, list):
for directory in directories:
copy_tree(directory, output_dir)
print(directory)
copytree(directory, output_dir, dirs_exist_ok=True)
else:
copy_tree(directories, output_dir)
copytree(directories, output_dir, dirs_exist_ok=True)
return
......@@ -149,14 +150,15 @@ if __name__ == "__main__":
"gallery.html",
"pubs.html",
"about.html",
"contact.html"
"users.html"
]
STATIC = [
"stylesheets",
"images",
"javascript",
"gallery"
"gallery",
"user_map",
]
print("Compiling markdown to HTML and saving in the about.yaml file...")
......
## Contact Us
Hello there!
You can easily reach the team via our <a href="https://app.gitter.im/#/room/#swiftsim_Lobby:gitter.im">Gitter</a>.
### E-mail
You can also join our <a href="https://mail.strw.leidenuniv.nl/mailman/listinfo/swift-users">mailing list</a>.
This is a low-traffic, announcement-only list to keep updated on releases and other important changes.
Alternatively, you can contact us using the form below. <br/>
<form action="https://formspree.io/f/xzbqkdyk" method="POST">
<label for="name"><h4>Name</h4></label>
<input type="text" name="name">
<label for="email"><h4>Email</h4></label>
<input type="email" name="_replyto">
<label for="content"><h4>Content</h4></label>
<textarea name="content" placeholder="Your message here..."></textarea>
<input type="hidden" name="_subject" id="email-subject" value="Contact Form Submission">
<input type="submit" value="Send" class="btn btn-blue send">
</form>
### Postal
If you would prefer to contact us through the post, you can do that at the following address:
The SWIFT team (M. Schaller) <br/>
Instituut-Lorentz for Theoretical Physics <br/>
P.O. Box 9506 <br/>
NL-2300 RA Leiden <br/>
The Netherlands <br/>
people: [
{
name: Dr. Matthieu Schaller,
role: Project PI,
affil: "Lorentz Institute & Leiden Observatory",
href: "https://www.matthieuschaller.com",
expertise: Lead-developer,
},
{
name: Dr. Joshua Borrow,
href: "https://joshborrow.com/",
affil: "MIT",
expertise: "Hydrodynamics Scheme"
},
{
name: Dr. Peter Draper,
affil: "ICC, Durham University",
expertise: "Parallelization, domain decomposition",
href: "https://www.durham.ac.uk/staff/p-w-draper/",
},
{
name: Dr. Mladen Ivkovic,
affil: "Department of Computer Science, Durham University",
expertise: "Hydodynamics Schemes, Radiative transfer",
href: "https://www.durham.ac.uk/staff/mladen-ivkovic/",
},
{
name: Dr. Stuart McAlpine,
affil: "The Oskar Klein Centre, Stockholm University",
expertise: "Gravity, zoom-in simulations",
href: "https://smcalpine.com/",
},
{
name: Dr. Bert Vandenbroucke,
href: "https://home.strw.leidenuniv.nl/~vandenbroucke/",
expertise: "Hydrodynamics and numerical schemes",
},
{
name: Dr. Yannick Bahe,
affil: "LASTRO, EPFL",
href: "https://home.strw.leidenuniv.nl/~bahe/",
expertise: "Sub-grid models"
},
{
name: Evgenii Chaikin,
affil: "Leiden Observatory",
href: "https://local.strw.leidenuniv.nl/people/pers.php?id=5181",
expertise: "Sub-grid models"
},
{
name: Dr. Aidan Chalk,
href: "https://scholar.google.co.uk/citations?user=55JKkoEAAAAJ&hl=en",
affil: "STFC Daresbury Laboratory",
expertise: "Parallelization, GPU, Domain decomposition"
},
{
name: Dr. TK Chan,
href: "https://astrophysics.uchicago.edu/people/profile/tsang-keung-chan/",
affil: "University of Chicago",
expertise: "Radiative transfer",
},
{
name: Dr. Camila Correa,
href: "https://www.camilacorrea.com/",
affil: "GRAPPA, University of Amsterdam",
expertise: "Self-interacting dark matter",
},
{
name: Dr. Marcel van Daalein,
affil: "Leiden Observatory",
href: "https://home.strw.leidenuniv.nl/~daalen/",
},
{
name: Willem Elbers,
affil: "ICC, Durham University",
href: "https://willemelbers.com/",
expertise: "Cosmology, Neutrinos",
},
{
name: Dr. Pedro Gonnet,
href: "https://scholar.google.com/citations?user=IqOpdUkAAAAJ&hl=en",
affil: "Google Switzerland",
expertise: "Task-based parallelism, Algorithms",
},
{
name: Dr. Loic Hausammann,
href: "https://ethz.ch/staffnet/en/organisation/departments/it-services/people/person-detail.MzExMTAz.TGlzdC80NDI5LC04NTM1NzczMTQ=.html",
affil: "EPFZ"
},
{
name: Dr John Helly,
href: "https://www.durham.ac.uk/staff/j-c-helly/",
affil: "ICC, Durham University",
expertise: "Light-cones, very large simulations",
},
{
name: Filip Husko,
affil: "ICC, Durham University",
href: "https://www.durham.ac.uk/staff/filip-husko/",
expertise: "Sub-grid models"
},
{
name: Dr. Jacob Kegerreis,
affil: "NASA Ames",
expertise: "Planetary giant impacts",
href: "http://astro.dur.ac.uk/~cklv53/"
},
{
name: Folkert Nobels,
affil: "Leiden Observatory",
href: "https://home.strw.leidenuniv.nl/~nobels/",
expertise: "Sub-grid models"
},
{
name: Dr. Sylvia Ploeckinger,
affil: "Department of Astrophysics, Vienna",
href: "https://www.sylviaploeckinger.com/",
expertise: "Sub-grid models"
},
{
name: Dr. Yves Revaz,
affil: "LASTRO, EPFL",
href: "https://people.epfl.ch/yves.revaz?lang=en",
expertise: "Sub-grid models"
},
{
name: Dr. Will Roper,
affil: "University of Sussex",
href: "https://profiles.sussex.ac.uk/p352567-william-roper",
expertise: "Zoom-in simulations",
},
{
name: Thomas Sandnes,
affil: "ICC, Durham University",
href: "https://www.durham.ac.uk/staff/thomas-d-sandnes/",
expertise: "Planetary simulations"
},
{
name: Yolan Uyttenhove,
affil: "Ghent University",
expertise: "Hydrodyanmics schemes",
},
{
name: James Willis,
href: "https://scholar.google.com/citations?user=vj6vz9MAAAAJ&hl=en",
affil: "SciNet HPC Consortium, University of Toronto",
expertise: "Vectorization, FOF algorithm",
},
]
......@@ -9,5 +9,5 @@ navbar: [
[About, "about.html"],
[Gallery, "gallery.html"],
[Publications, "pubs.html"],
[Contact, "contact.html"]
[Users, "users.html"]
]
Category Name Latitude Longitude Description
Core "Durham University" 54.7767 -1.5747 "Cosmological simulations"
Core "Universiteit Leiden" 52.1600 4.4900 "Cosmological simulations"
Community "EPFL" 46.5167 6.6333 "Cosmological simulations"
Community "University of Sussex" 50.8647 -0.0831 "Cosmological simulations"
Community "MIT" 42.3601 -71.0942 "Cosmological simulations"
Community "University of Manchester" 53.4794 -2.2453 "Cosmological simulations"
Community "University of Edinburgh" 55.9533 -3.1883 "Cosmological simulations"
Community "LJMU" 53.4084 -2.9604 "Cosmological simulations"
Community "University of Hull" 53.7750 -0.3743 "Cosmological simulations"
Community "University of Portsmouth" 50.7989 -1.0917 "Cosmological simulations"
Community "University of Glasgow" 55.8724 -4.2902 "Cosmological simulations"
Community "University of Exeter" 50.7369 -3.5340 "Cosmological simulations"
Community "Imperial College London" 51.5072 -0.1276 "Cosmological simulations"
Community "University of Bristol" 51.4545 -2.5879 "Cosmological simulations"
Community "Milan" 45.4669 9.19 "Cosmological simulations"
Community "Warsaw" 52.2370 21.0175 "Cosmological simulations"
Community "Universty of Amsterdam" 52.3667 4.9000 "Cosmological simulations"
Community "Stockholm" 59.3294 18.0686 "Cosmological simulations"
Community "Helsinki" 60.1920 24.945831 "Cosmological simulations"
Community "Potsdam" 52.3989 13.0656 "Cosmological simulations"
Community "Hong Kong" 22.3964 114.1095 "Cosmological simulations"
Community "Vienna" 48.2082 16.3738 "Cosmological simulations"
Community "Perth" -31.955 115.8605 "Cosmological simulations"
Community "Ghent" 51.0500 3.7333 "Cosmological simulations"
Community "Paris" 48.8566 2.3522 "Cosmological simulations"
Community "Santiago" -33.448 -70.6693 "Cosmological simulations"
Community "Cordoba" -31.416 -64.1833 "Cosmological simulations"
Community "NASA Ames" 37.4085 -122.0634 "Cosmological simulations"
Community "New York" 40.7128 -74.0060 "Cosmological simulations"
Community "CCA" 34.0522 -118.2437 "Cosmological simulations"
Community "Penn State" 40.7982 -77.8601 "Cosmological simulations"
Community "Oslo" 59.9139 10.7522 "Cosmological simulations"
Community "UC Davis" 38.5449 -121.7405 "Cosmological simulations"
Community "Weizmann institutes" 31.9047 34.8352 "Cosmological simulations"
Community "Carnegie Mellon" 40.4433 -79.9436 "Cosmological simulations"
Community "Caltech" 34.1377 -118.1253 "Cosmological simulations"
Community "SETI Institute" 37.3872 -122.050 "Cosmological simulations"
Community "Tokyo Tech" 35.6528 139.7735 "Cosmological simulations"
Community "UC Santa Cruz" 36.9741 -122.0308 "Cosmological simulations"
Community "Johns Hopkins" 39.1073 -76.8597 "Cosmological simulations"
Community "Cape Town" -33.922 18.4231 "Cosmological simulations"
Community "Mexico City" 19.4326 -99.1332 "Cosmological simulations"
Community "Buenos Aires" -34.6037 -58.3821 "Cosmological simulations"
Community "Sydney" -33.8688 151.2093 "Cosmological simulations"
Community "Los Alamos" 35.8800 -106.3031 "Cosmological simulations"
Community "Maynooth" 53.3815 -6.5910 "Cosmological simulations"
Community "Kiev" 50.4504 30.5245 "Cosmological simulations"
Community "Arizona State University" 33.4245 -111.928 "Cosmological simulations"
Community "SwRI" 40.0174 -105.2781 "Cosmological simulations"
# Locally stored talk files should be stored in a top-level directory
# that is placed into 'STATIC' in compiler.py. You can then refer to
# the files as their filenames wtihout worrying about directory
# references. Nominally we will use /talks.
cards:
- meeting: 13th SPHERIC International Workshop
location: Galway, Ireland
date: 26 June 2018
title: "SWIFT: Maintaining weak-scalability with a dynamic range of 10^4 in time-step size to harness extreme adaptivity"
author: Josh Borrow, Matthieu Schaller
abstract: "Cosmological simulations require the use of a multiple
time-stepping scheme. Without such a scheme, cosmological
simulations would be impossible due to their high level of dynamic
range; over eleven orders of magnitude in density. Such a large
dynamic range leads to a range of over four orders of magnitude in
time-step, which presents a significant load-balancing
challenge. In this work, the extreme adaptivity that cosmological
simulations present is tackled in three main ways through the use
of the code SWIFT. First, an adaptive mesh is used to ensure that
only the relevant particles are interacted in a given
time-step. Second, task-based parallelism is used to ensure
efficient load-balancing within a single node, using pthreads and
SIMD vectorisation. Finally, a domain decomposition strategy is
presented, using the graph domain decomposition library METIS,
that bisects the work that must be performed by the simulation
between nodes using MPI. These three strategies are shown to give
SWIFT near-perfect weak-scaling characteristics, only losing 25%
performance when scaling from 1 to 4096 cores on a representative
problem, whilst being more than 30x faster than the de-facto
standard Gadget-2 code."
links:
- href: "SPHERIC_2018.pdf"
name: Slides
- href: "https://arxiv.org/abs/1807.01341"
name: Paper
- meeting: European Week of Astronomy and Space Science 2018
location: Liverpool, UK
date: April 2018
title: "The next-generation cosmological code SWIFT"
author: Matthieu Schaller
abstract: "One of the big challenges in simulations of galaxy
formation is to harness the raw computing power of the largest
facilities. With current codes gravity+hydrodynamics code
achieving less than 0.1% of the available flops, it is
important to revisit how we write code for such systems and how we
interact with the wider HPC community.
We present the next-generation open-source cosmological code
SWIFT, created as a joint effort between galaxy formation
scientists and computer scientists with expertise in
parallel programming. Using task-based parallelism for intra-node
parallelisation, asynchronous communications for inter-node
communications and SIMD intrinsics for the code kernels, our code
is more than 30x faster than the de-facto standard Gadget code on
representative cosmological problems. The code also uses much
fewer resources allowing to run simulations an order of magnitude
larger than is currently doable (e.g. EAGLE, Illustris,
Horizon-AGN,...).
We implement multiple SPH and unstructured hydrodynamics
solvers as well as a full test suite to assess the accuracy of the
schemes in various situations. This test suite is part of the code
release and we highlight good programming practices to make
sure the software is usable by the community and interfaces well
with other tools (e.g. yt, paraview, ...)."
links:
- href: "EWASS_2018.pdf"
name: Slides
- meeting: Computational Galaxy Formation 2018
location: Ringberg Castle, Tegernsee, Germany
date: March 2018
title: "First steps towards cosmological simulations with full EAGLE physics"
author: Matthieu Schaller
abstract: "The SWIFT simulation code has now matured enough that we can start targeting large-scale simulations using the EAGLE physics model. In this talk
I will discuss the status of the code and present some ideas related to the domain decomposition that we implemented in order to tackle the challenge of
deep time-step hierarchies that develop in cosmological simulations. I will also present some weak-scaling plots demonstrating the ability of the code to scale
up to the largest systems in realistic scenarios."
links:
- href: "Ringberg_2018.pdf"
name: Slides
- meeting: Supercomputing Frontiers Europe 2018
location: Warsaw, Poland
date: March 2018
title: "Individual time-stepping in cosmological simulations: A challenge for strong scaling and domain decomposition algorithms"
author: Matthieu Schaller
abstract: "For many decades cosmological simulations have used individual time-steps for the particles (or cells) that are evolved forward in time. Given the large range in time-step sizes
required for accurate integration, this allows substantial gains in time to solution compared to the more widely adopted in science technique of using a single time-step for the whole
computational domain. However, only limited work has been done to improve domain decomposition techniques to make them aware of this multiple time-stepping scheme. This results in domains
perfectly suited for time-steps where most particles require updating but leads to terrible performance with large levels of imbalance for the steps where only a small fraction of particles are
being updated. This generates poor overall strong-scaling performance and leads to a poor utilisation of the systems.
In this paper, we will introduce some of these short-comings and present a solution based on task-based parallelism and a weighted graph domain decomposition algorithm implemented in the
open-source cosmological code SWIFT. By carefully weighting the different tasks in an overall cluster-wide graph, we can divide the work and not the data optimally. If we further penalise the
creation of communication tasks we can achieve a domain decomposition where no MPI communication is required for the time-steps with few active particles. This effectively eliminates most imbalance
issues and leads to optimal performance not just for time-steps with large number of updates but also for the ones with few particles to update. We achieve much better strong-scaling performance than
commonly used codes and achieve a time-to-solution 30 times smaller than the de-facto standard Gadget code."
links:
- href: "SuperComputingFrontiers_2018.pdf"
name: Slides
- meeting: SIAM Conference on Parallel Processing for Scientific Computing 2018
location: Tokyo, Japan
date: March 2018
title: "Using Task-Based Parallelism, Asynchronous MPI and Dynamic Workload-Based Domain Decomposition to Achieve Near-Perfect Load-Balancing for Particle-Based Hydrodynamics and Gravity"
author: Matthieu Schaller
links:
- href: "SIAM_2018.pdf"
name: Slides
- meeting: Intel HPC DevCon 2017
location: Denver, USA
date: November 2017
title: "Task-based Calculation + Task-based MPI + Task-based I/O = Maximal Performance"
author: Matthieu Schaller
abstract: "Traditional large HPC simulation codes rely on MPI or
MPI plus OpenMP for their parallelization over clusters of more
than 100,000 cores. This approach of task-based parallelism
strategy is used in SPH With Interdependent Fine-Grained Tasking,
or SWIFT. This open-source cosmological code makes use of
vectorization, dynamic scheduling, task-based I/O, and more."
links:
- href: "HPC_DevCon_2017.pdf"
name: Slides
- href: "https://software.intel.com/en-us/events/hpc-devcon/2017/parallel-programming?multiplayer=5646499531001"
name: Talk Movie
- meeting: ParCo Conference 2017
location: Bologna, Italy
date: September 2017
title: "An Efficient SIMD Implementation of Pseudo-Verlet Lists for Neighbour Interactions in Particle-Based Codes"
author: James S. Willis
abstract: "In particle-based simulations, neighbour finding (i.e finding pairs of particles to interact within a given range) is the most time consuming part of the computation. One of the best such algorithms, which can be used for both Molecular Dynamics (MD) and Smoothed Particle Hydrodynamics (SPH) simulations is the pseudo-Verlet list algorithm. This algorithm, however, does not vectorize trivially, and hence makes it difficult to exploit SIMD-parallel architectures. In this paper, we present several novel modifications as well as a vectorization strategy for the algorithm which lead to overall speed-ups over the scalar version of the algorithm of 2.24x for the AVX instruction set (SIMD width of 8), 2.43x for AVX2, and 4.07x for AVX-512 (SIMD width of 16)."
links:
- href: "ParCo_2017_Bologna_Talk.pdf"
name: Slides
- href: "https://arxiv.org/abs/1804.06231"
name: Paper
- meeting: UK National Astronomy Meeting
location: Hull, UK
date: July 2017
title: The cosmological hydrodynamical code SWIFT
author: Matthieu Schaller
abstract: "We present the next-generation open-source cosmological code SWIFT. Using task-based parallelism for intra-node parallelisation, asynchronous communications for inter-node communications and SIMD intrinsics for the code kernels, our code is more than 20x faster than the de-facto standard Gadget code on representative cosmological problems. We implement multiple SPH and unstructured hydrodynamics solvers as well as a full test suite to assess the accuracy of the schemes in various situations. We expect to release the code to the public by the end of the summer. Current performance tests on 100k+ cores have been published in arxiv:1606.02738."
links:
- href: "NAM_2017.pdf"
name: Slides
- meeting: ISC Intel Booth talk
location: Frankfurt, Germany
date: June 2017
title: "SWIFT: Using Task-Based Parallelism, Fully Asynchronous Communication and Vectorization to achieve maximal HPC performance"
author: James S. Willis
abstract: "We present a new open-source cosmological code, called swift, designed to solve the equations of hydrodynamics using a particle-based approach (Smooth Particle Hydrodynamics) on hybrid shared / distributed-memory architectures. Swift was designed from the bottom up to provide excellent strong scaling on both commodity clusters (Tier-2 systems) and Top100-supercomputers (Tier-0 systems), without relying on architecture-specific features or specialised accelerator hardware. This performance is due to three main computational approaches: - Task-based parallelism for shared-memory parallelism, which provides fine-grained load balancing and thus strong scaling on large numbers of cores. - Graph-based and genetic algorithm-based domain decomposition, which uses the task graph to decompose the simulation domain such that the work, as opposed to just the data, as is the case with most partitioning schemes, is equally distributed across all nodes. - Fully dynamic and asynchronous communication, in which communication is modelled as just another task in the task-based scheme, sending data whenever it is ready and deferring on tasks that rely on data from other nodes until it arrives, - Explicit vectorization of the core kernel to exploit all the available FLOPS on architectures such as Xeon Phi. In order to use these approaches, the code had to be rewritten from scratch, and the algorithms therein adapted to the task-based paradigm. As a result, we can show upwards of 60% parallel efficiency for moderate-sized problems when increasing the number of cores 512-fold on x86 architecture making SWIFT more than an order of magnitude faster than current alternative software."
links:
- href: "ISC_Intel_Booth_Talk_2017.pdf"
name: Slides
- meeting: IXPUG Annual Spring Conference
location: Cambridge, UK
date: April 2017
title: "SWIFT: An efficient SIMD implementation of pseudo Verlet-lists for neighbour interactions in particle-based codes"
author: James S. Willis
abstract: "In molecular dynamics (MD) and smoothed particle hydrodynamics simulations (SPH), a set of particle interactions must be computed. Current algorithms that solve this problem using complex techniques to reduce the number of distance calculations do not translate well into SIMD instructions. Compilers tend to produce auto-vectorised code that is inefficient. Poor performance arises predominantly from branches in the code and inefficient memory access. We present new SIMD vectorisation strategies that address these issues. We implement a pseudo-Verlet list, a particle sorting algorithm, and our own vectorisation strategies. We have applied our strategy to the cosmological code called SWIFT, which solves the equations of hydrodynamics using SPH. We observe a speedup of 6.65x for the raw particle interactions and 2.32x for the overall neighbour find and interaction function using AVX2."
links:
- href: "IXPUG_Cambridge_2017.pdf"
name: Slides
- meeting: Intel HPC Devcon
location: Salt Lake City, US
date: November 2016
title: "SWIFT: Using Task-Based Parallelism, Fully Asynchronous Communication and Vectorization to achieve maximal HPC performance"
author: Matthieu Schaller
abstract: "We present a new open-source cosmological code, called swift, designed to solve the equations of hydrodynamics using a particle-based approach (Smooth Particle Hydrodynamics) on hybrid shared / distributed-memory architectures. Swift was designed from the bottom up to provide excellent strong scaling on both commodity clusters (Tier-2 systems) and Top100-supercomputers (Tier-0 systems), without relying on architecture-specific features or specialised accelerator hardware. This performance is due to three main computational approaches: - Task-based parallelism for shared-memory parallelism, which provides fine-grained load balancing and thus strong scaling on large numbers of cores. - Graph-based and genetic algorithm-based domain decomposition, which uses the task graph to decompose the simulation domain such that the work, as opposed to just the data, as is the case with most partitioning schemes, is equally distributed across all nodes. - Fully dynamic and asynchronous communication, in which communication is modelled as just another task in the task-based scheme, sending data whenever it is ready and deferring on tasks that rely on data from other nodes until it arrives, - Explicit vectorization of the core kernel to exploit all the available FLOPS on architectures such as Xeon Phi. In order to use these approaches, the code had to be rewritten from scratch, and the algorithms therein adapted to the task-based paradigm. As a result, we can show upwards of 60% parallel efficiency for moderate-sized problems when increasing the number of cores 512-fold on x86 architecture making SWIFT more than an order of magnitude faster than current alternative software."
links:
- href: "HPC_DevCon_Talk_2016.pdf"
name: Slides
- href: "http://players.brightcove.net/734546229001/default_default/index.html?videoId=5214543392001"
name: Talk Movie
- meeting: IPCC-EMEA Fall Meeting
location: Toulouse, France
date: October 2016
title: "SWIFT: Scheduling tasks efficiently on 256 cores - The KNL challenge"
author: Matthieu Schaller
links:
- href: "IPCC_EMEA_2016_10.pdf"
name: Slides
- meeting: PASC Conference 2016
location: Lausanne, Switzerland
date: June 2016
title: "SWIFT: Strong scaling for particle-based simulations on more than 100'000 cores"
author: Matthieu Schaller
abstract: "We present a new open-source cosmological code, called SWIFT, designed to solve the equations of hydrodynamics using a particle-based approach (Smooth Particle Hydrodynamics) on hybrid shared/distributed-memory architectures. SWIFT was designed from the bottom up to provide excellent strong scaling on both commodity clusters (Tier-2 systems) and Top100-supercomputers (Tier-0 systems), without relying on architecture-specific features or specialised accelerator hardware. This performance is due to three main computational approaches: (1) Task-based parallelism for shared-memory parallelism, which provides fine-grained load balancing and thus strong scaling on large numbers of cores. (2) Graph-based domain decomposition, which uses the task graph to decompose the simulation domain such that the work, as opposed to just the data, as is the case with most partitioning schemes, is equally distributed across all nodes. (3) Fully dynamic and asynchronous communication, in which communication is modelled as just another task in the task-based scheme, sending data whenever it is ready and deferring on tasks that rely on data from other nodes until it arrives. In order to use these approaches, the code had to be re-written from scratch, and the algorithms therein adapted to the task-based paradigm. As a result, we can show upwards of 60% parallel efficiency for moderate-sized problems when increasing the number of cores 512-fold, on both x86-based and Power8-based architectures."
links:
- href: "PASC_2016.pdf"
name: Slides
- href: "https://arxiv.org/abs/1606.02738"
name: Paper
- meeting: EASC conference 2015
location: Edinburgh, UK
date: April 2015
title: " SWIFT: task-based hydrodynamics and gravity for cosmological simulations"
author: Tom Theuns
abstract: "Simulations of galaxy formation follow the gravitational and hydrodynamical interactions between gas, stars and dark matter through cosmic time. The huge dynamic range of such calculations severely limits strong scaling behaviour of the community codes in use, with load-imbalance, cache inefficiencies and poor vectorisation limiting performance. The new swift code exploits task-based parallelism designed for many-core compute nodes interacting via MPI using asynchronous communication to improve speed and scaling. A graph-based domain decomposition schedules interdependent tasks over available resources. Strong scaling tests on realistic particle distributions yield excellent parallel efficiency, and efficient cache usage provides a large speed-up compared to current codes even on a single core. SWIFT is designed to be easy to use by shielding the astronomer from computational details such as the construction of the tasks or MPI communication. The techniques and algorithms used in SWIFT may benefit other computational physics areas as well, for example that of compressible hydrodynamics."
links:
- href: "https://arxiv.org/abs/1508.00115"
name: Paper
- meeting: Exascale Computing in Astrophysics
location: Ascona, Switzerland
date: September 2013
title: "SWIFT: Task-based parallelism, hybrid shared/distributed-memory parallelism, and SPH simulations"
author: Pedro Gonnet
links:
- href: "Ascona_2013.pdf"
name: Slides
- href: "https://www.youtube.com/watch?v=2Q5GIG9HVJY"
name: Talk Movie
import os
from bokeh.models import ColumnDataSource, WheelZoomTool, HoverTool
from bokeh.plotting import figure, save
import numpy as np
import pandas as pd
import xyzservices.providers as xyz
# Read in data
df = pd.read_csv('data/swift_users.txt', sep=r'\s+')
# Convert latitude & longitde to metcator coordinates
def wgs84_to_web_mercator(lon, lat):
k = 6378137
x = lon * (k * np.pi/180.0)
y = np.log(np.tan((90 + lat) * np.pi/360.0)) * k
return x, y
df["x"], df["y"] = wgs84_to_web_mercator(df["Longitude"], df["Latitude"])
# Set map bounds
min_lon, max_lon = -180, 180
min_lat, max_lat = -56, 70
min_x, min_y = wgs84_to_web_mercator(min_lon, min_lat)
max_x, max_y = wgs84_to_web_mercator(max_lon, max_lat)
# Create map
p = figure(
x_range=(min_x, max_x),
y_range=(min_y, max_y),
x_axis_type="mercator", y_axis_type="mercator",
title=None,
sizing_mode="scale_width",
aspect_ratio=1.9,
)
tile_provider = xyz.CartoDB.Voyager
p.add_tile(tile_provider)
# Plot users
for cat, color in [
('Community', 'blue'),
('Core', 'red'),
]:
source = ColumnDataSource(df[df['Category'] == cat])
p.scatter(x="x", y="y", size=15, fill_color=color, fill_alpha=0.8, source=source, line_color='black', line_width=2, legend_label=cat)
hover = HoverTool(tooltips=[
("Institute", "@Name"),
# ("Description", "@Description"),
])
p.add_tools(hover)
# Activate wheel zoom
for tool in p.tools:
if isinstance(tool, WheelZoomTool):
p.toolbar.active_scroll = tool
break
# Apply bounds to the plot ranges
p.x_range.bounds = (min_x, max_x)
p.y_range.bounds = (min_y, max_y)
# Zoom level limit
p.x_range.min_interval = 10**5.5
p.x_range.max_interval = max_x - min_x
p.y_range.min_interval = 10**5.5
p.y_range.max_interval = max_y - min_y
# Legend
p.legend.location = "top_left"
p.legend.label_text_font_size = "20pt"
# Save
os.makedirs('user_map', exist_ok=True)
save(p, 'user_map/swift_users.html', title='SWIFT Users', resources='inline')
#!/bin/bash
set -e
# Tested on winkel.strw.leidenuniv.nl
module purge
module load localhosts
# Create venv if it doesn't exist
[ ! -d "venv" ] && python -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
# Create main webpage
git pull
[ -d "gallery" ] && rm -rf gallery
cp -r /net/hypernova/data2/webpages_data/SWIFT/image_gallery gallery
python query.py rLY4HeXMXttDOSedTGrYuRufATu2gDwgE84Hqy3B
python generate_map.py
python compiler.py
rsync -auv compiled/* ../
[ ! -d "swift" ] && git clone "git@gitlab.cosma.dur.ac.uk:swift/swiftsim.git" "swift"
cd swift
git checkout master
git pull
# Generate read the docs
cd doc/RTD
[ -d "build" ] && rm -rf build
make html > docbuild.out 2> docbuild.err
# Generate onboarding guide
cd ../onboardingGuide
[ -d "build" ] && rm -rf build
make latexpdf > onbuild.out 2> onbuild.err
# Copy both to webpage
cd ../../..
[ -d "../docs" ] && rm -rf ../docs
cp -r swift/doc/RTD/build/html/ ../docs
cp swift/doc/onboardingGuide/build/latex/onboarding.pdf ../onboarding.pdf
# Generate read the docs for the zoom branch
[ ! -d "swift_will" ] && git clone "git@gitlab.cosma.dur.ac.uk:swift/swiftsim.git" "swift_will"
cd swift_will
git checkout zoom_docs
git pull
cd doc/RTD
[ -d "build" ] && rm -rf build
make html > docbuild.out 2> docbuild.err
cd ../../..
[ -d "../docs_will" ] && rm -rf ../docs_will
cp -r swift_will/doc/RTD/build/html/ ../docs_will
# Required for SWIFTweb
pyyaml
jinja2
mistune
python-dateutil
myads
bokeh
# Required for swift docs
sphinx_rtd_theme
scipy
matplotlib
form {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-content: stretch;
}
input, textarea {
width: 100%;
padding: 1em 0.5em;
border-radius: 2px;
border: 1px solid #145289;
}
textarea {
min-height: 10em;
resize: none;
padding: 0.5em;
}
form h4 {
margin-bottom: 0.25em;
}
.send {
margin: 1em 0;
}
/* Page Layout */
.content {
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-between;
align-content: stretch;
}
.text {
width: 45%;
margin: 0;
}
.padder {
margin-top: 1em;
border-left: 1px solid black;
}
/* Media Queries */
@media screen and (max-width: 768px) {
.text {
width: 100%;
}
.padder {
margin: 1em 0;
border-left: none;
border-bottom: 1px solid black;
}
}
\ No newline at end of file
iframe {
width: 100%;
height: auto; /* Allow height to adjust based on aspect-ratio */
aspect-ratio: 1.9;
border: none;
display: block;
margin-bottom: 3em;
}
.content {
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-between;
align-content: stretch;
}
.text {
width: 100%;
margin: 0;
}
.padder {
margin-top: 1em;
border-left: 1px solid black;
}
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment