Hyungman Park

Ph.D., ECE, UT Austin
Advised by Donald Fussell and Paul Navrátil


I am interested in building visual computing systems, both hardware and software. At UT Austin, I did research in the field of computer graphics and visualization with a focus on ray tracing. For my dissertation, I designed ray tracing systems and algorithms for visualizing large datasets in a supercomputing environment using distributed compute nodes.

I was also a member of the GraviT project and collaborated with visualization scientists at Texas Advanced Computing Center (TACC). Here is a related story on the TACC newsletter describing one of my contributions in the field of scientific data visualization: TACC builds seamless software for scientific innovation.

Prior to my years in academia, I was a camera image processor designer at Samsung and LG, where I was involved in various parts of system-on-chip developement for surveillance and mobile phone cameras, including camera algorithms, system architecture, image processing pipelines, and front-end chip design.

In addition to working on graphics and imaging systems, I did research in system-level design and specialized processor architecture with Andreas Gerstlauer. In particular, I architected a specialized processor that can simulate the evolution of large-scale biological networks orders of magnitude faster than software algorithms running on a state-of-the-art workstation.

Publications

Data-Aware Predictive Scheduling for Distributed-Memory Ray Tracing
Hyungman Park, Donald Fussell, Paul Navrátil
IEEE Transactions on Visualization and Computer Graphics 2022
Best paper at LDAV 2021

Speculative Ray Scheduling for Large Data Visualization on Supercomputers
Hyungman Park
Dissertation, University of Texas at Austin, 2021

A Simulation-Oblivious Data Transport Model for Flexible In Transit Visualization
Will Usher, Hyungman Park, Myoungkyu Lee, Paul Navrátil, Donald Fussell, Valerio Pascucci
In Situ Visualization for Computational Science 2022

SpRay: Speculative Ray Scheduling for Large Data Visualization
Hyungman Park, Donald Fussell, Paul Navrátil
Large Data Analysis and Visualization 2018

Toward a Fast Stochastic Simulation Processor for Biochemical Reaction Networks
Hyungman Park, Andreas Gerstlauer
Application-specific Systems, Architectures and Processors 2013

Synthesis of Optimized Hardware Transactors from Abstract Communication Specifications
Dongwook Lee, Hyungman Park, Andreas Gerstlauer
Hardware/Software Codesign and System Synthesis 2012

SoC Design of an Auto-Focus Driving Image Signal Processor for Mobile Camera Applications
Sungmin Sohn, Sunghyun Yang, Hyungman Park, Sangwook Kim, Yongtae Cho, Manhong Sohn, Seunghyun Yi, Kuktae Hong, Kughyun Baek, Woohyun Paik
Consumer Electronics 2006


Projects

The SpRay ray tracer
SpRay is a distributed-memory ray tracer designed to support out-of-core rendering and in situ rendering for large-scale data and complex scenes in a supercomputing environment. The name SpRay is abbreviated for speculative scheduling of rays and scene data where intersections or occlusions of rays in different regions of the scene are speculated or predicted before rays and data are assigned to particular regions.
The current release of SpRay is available in the GitHub repo at TACC, but the code has been evolved so much since the last release. I plan to release the next version sometime before summer 2021.

The GraviT ray tracer
GraviT is a distributed-memory ray tracer that is designed with modularity in mind. That is, different parts of large-scale rendering are separated into three key elements for a plug-and-play style of software construction. The three elements include interface, scheduler, and engine. The interface element is how users interact with GraviT, the scheduler element brings together actors and its corresponding pieces of data to advance the rendering computation, and the engine element performs the operations of the actor upon the data. With such modular design of GraviT, developers can extend GraviT with their own implementations of interface, scheduler, and engine, or even reuse existing implementations to achieve a desired configuration in a short period of time.