Paul Manstetten
Dipl.-Ing. (FH) Dr.techn. MSc
Publications

Biography

Paul Manstetten was born in 1984 in Berlin, Germany. He studied Mechatronics at the University of Applied Sciences Regensburg (Dipl.-Ing.) and Computational Engineering at the University of Erlangen-Nuremberg (MSc). After three years as an application engineer for optical simulations at OSRAM Opto Semiconductors in Regensburg he joined the Institute for Microelectronics in 2015 as a project assistant. He finished his PhD studies (Dr.techn.) in 2018 and works as a postdoctoral researcher on high performance methods for semiconductor process simulation.

Process Simulation via a Client-Side Browser Application using WebAssembly

WebAssembly is an up-and-coming open standard for a binary format expressing assembly-like instructions for an abstract structured stack machine. Today, about 85% of installed browsers support WebAssembly. And the possibility of compiling existing C/C++ projects makes the bundling of existing scientific code with a user-interface into a client-side web application very attractive. ViennaTS(link) is an open-source C++ topography simulator. Two- and three-dimensional simulations are supported. The surface is represented as a single resolution level-set discretized on a Cartesian grid. Particle transport is implemented using a Monte Carlo approach and an explicit representation of the surface (partially overlapping disks). A set of advanced physical etching and deposition models complements fast models to emulate process steps.

We compiled ViennaTS to WebAssembly and bundled it with a parameter editor and a result viewer. Fig. 1 provides an overview of the components interacting within the browser application: The user interface is run in the UI Thread of the browser and contains an Editor and a Result Viewer. The Web Worker loads ViennaTS (vts.wasm) and single-pass compiles it for the current host system. When the simulation is started, the parameter file (par.txt) is transferred to the Web Worker and stored in the Virual File System. The initial geometries (geo.vtk) referenced in par.txt are then fetched from the Webserver by the Web Worker. Once all required files are available, the Web Worker executes ViennaTS, which saves the results (res.vtk) to the Virual File System. These results are then transferred to the UI Thread and visualized in the Result Viewer as soon as they are available.

To assess the capabilities and the performance gap of the web application, we compared the runtime of a set of representative simulation examples, including physical deposition/etching and geometric process emulation. The performance gap for single-thread execution is between 2 and 3 on a common desktop computer. This confirms the attractiveness of the approach, given the wide accessibility and minimal demand on the server-side (only static file serving).


Fig. 1: Overview of the components interacting within the client-side browser application.

Fig. 2: Screenshot of the user interface during a process emulation (https://hpcwasm.github.io/viennats).