NCSI

   

Creation of an Updated GalaxSee Interface


Shodor > NCSI > XSEDE EMPOWER > XSEDE EMPOWER Positions > Creation of an Updated GalaxSee Interface

Status
Completed
Mentor NameDavid Joiner
Mentor's XSEDE AffiliationFormer employee and current collaborator with Shodor/XSEDE Education Program. I have worked with XSEDE to host multiple discussions on Computational Science on campus.
Mentor Has Been in XSEDE Community4-5 years
Project TitleCreation of an Updated GalaxSee Interface
SummaryGalaxSee is a program designed to teach issues in high performance computing surrounding the gravitational N-Body problem, and has been built in the past to run on Macs, PCs, Web Servers, in Java applets, on HPC clusters, and on the LittleFe parallel computing environment. We would like to update the current PC/Mac interface to run on the most recent OS versions, adding in the feature set parallelism that can be enabled for both multi-core through OpenMP and many-core if a suitable GPGPU is present. Additionally, we would like to add a steered mode to communicate with GalaxSee-HPC running on a remote XSEDE cluster, and update GalaxSee-HPC to make use of OpenMP and GPGPU based parallelism.
Job DescriptionThe Application for this project is the gravitational N-Body problem, focused on a few key scenarios. First, planetary and asteroid orbits, with preset systems based on our own solar system and multiple suspected planetary systems, and random “asteroids” to probe gravitational stability in planetary systems. An additional random system mode with collisions in which bodies can be accreted from smaller objects and momentum can be conserved will also be included. Second, stellar clusters will be included, with a focus on the evolution of clusters and the evidence supporting the virial theorem. Third, gravitational structure will be included, with pre-sets to study the “rotation and flattening” of a large gravitationally bound system with initial angular momentum. Fourth, collisions of galaxies, with presets to understand the role of collision in galactic structure. Finally, large scale structure, using a “Universe-In-A-Box” model.
The Algorithms used will allow for study of different numerical integrators typical in N-Body calculations including symplectic integrators, Runge-Kutta integrators, and predictor-corrector integrators. A direct calculation of forces will be allowed as one option, a tree-based approximation to the far field will be included, and a Particle-Particle Particle-Mesh far field implementation with a Fourier transform based solution of Poisson’s equation for gravity will be used for the Universe-In-A-Box to allow for periodic boundary conditions.
The Architecture for initial development will be Unity Game Engine running on Windows 10 based PCs and MacOS X based Macs. The interface will be designed in C# in Unity, and the numerical code will be in a separate C++ based dynamic link library, and calculations will be run in a separate thread from the interface. Preliminary work has been done on the interface as part of a project studying the visualization of asteroid orbits, and the numerical work described above all currently exists in GalaxSee HPC.
The student duties will be to continue development of an interface in Unity to connect to GalaxSee HPC running as a dynamic link library. This will involve programming the UI level to implement the options from previous versions of GalaxSee for Mac, Windows, and Java. GalaxSee HPC, written in C/C++, which currently implements parallelism using MPI, will be extended to also provide options for OpenMP and GPU based parallelism. Time permitting, a sockets based extension to allow for connecting to an instance of GalaxSee HPC on a remote server will also be developed.
Work in Fall 2018 will focus on completion of the UI, and adaptation of the additional force calculation routines in GalaxSeeHPC.
The primary student skill will be Unity Game Engine design and C# programming, with secondary skills in C/C++, OpenMP and CUDA, and sockets.
Computational ResourcesGalaxSee HPC will be adapted first for use on a local workstation to implement OpenMP and CUDA based parallel calculation of direct gravitational forces, as well as descent of the tree-based structure in Barnes-Hut mode, which is currently implemented using MPI. This will then be tested on XSEDE resources to determine optimum scaling for problem sizes appropriate for classroom instruction. As the sockets-based connection is developed, it will be tested and implemented for use with XSEDE resources.
Contribution to Community
Position TypeApprentice
Training PlanThe student was part of a research-based course in Spring of 2017 (STME 2903 Research Experience) that provided introductory training in Unity Game Engine programming, during which the student performed tutorials on creation and control of objects using C# scripts. The student was involved specifically in the development of programmable shaders to create volumetric renderings in Unity.
Lesson plans surrounding GalaxSee HPC have already been developed for the BWSIP (see http://www.shodor.org/petascale/materials/UPModules/NBodyScaling/), which will be used as the basis for training on the fundamentals of N-Body physics as well as the algorithms needed in solving them.
The student’s training will start with the familiarization of compiling and running GalaxSee HPC, and documentation of the GalaxSee HPC API. The student will compile GalaxSee HPC to a shared library, and write simple driver programs to call GalaxSee HPC functions in order to understand how the library is used.
Example programs that implement shared libraries within a prototype interface will be provided to the student for study.
Additionally, students will be directed to multiple youtube videos and books in my library on Unity programming.
Student Prerequisites/Conditions/Qualifications
DurationSemester
Start Date09/01/2018
End Date12/21/2018

Not Logged In. Login