As one of the most powerful industrial conglomerates in Turkey, Şişecam is a global player in all key areas of the glass industry. It is internationally renowned for its ever-growing production power, highly reputable brand image, superior product quality, and value-creating sustainable growth approach. It is currently one of the world’s leading glass producers with production operations located in 14 countries on four continents, 24,000 employees, and sales in over 150 countries around the globe.
Şişecam fabricates glass products using custom-made furnaces. They use a simulation code written some decades ago that traces the glass particles inside the furnace. In a nutshell, the longer the particles stay inside the furnace, the better the quality of the product. To achieve this, they need to perform simulations with many particles; however, the computational cost increases enormously as the number of particles increases. To overcome this problem, the company applied to the center for consultancy on code modernization and scalable parallelization of the code to decrease the design process of the furnaces.
In the simulation code, the particles are processed in batches. After the code is parallelized and modernized, the batch size is increased to 1000 from 10. The reason for using a large batch size is the long-tailed running time of some of the particles; using a larger batch size and dynamic scheduling we were able to increase core utilization to > 90% from < 20% on the development machine (with 16-core/32-thread AMD Ryzen9).
On the longest-running test case provided by Şişecam, the Fortran code was taking 7 hours 14 minutes on the development machine, whereas unoptimized C++ code takes only 27 minutes 21 seconds. On a server with 20-core Xeon 6148 2.40 GHz, the code only takes 286 seconds. Even when a single thread, the runtime is 18 minutes, a huge speed-up compared to 7 hours on the development machine. Using 20 cores, the new implementation was able to achieve 3.86x speedup which can be further improved.
- We were able to translate a complicated numerical code that depends on depreciated technologies to modern C++.
- While translating, improvements in both maintainability and performance are done.
- In addition, the implementation is parallelized to use multiple cores with efficiency and the runtime is reduced from hours to minutes.
- Glass production, particle simulation, code modernization.
- Industry sector: Glass Manufacturing & engineering.