Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fedesky25/hpc-project-2024

Project for the 2024 course of HPC: generator of streamplot of complex-valued functions
https://github.com/fedesky25/hpc-project-2024

complex-numbers cuda openmp

Last synced: 9 days ago
JSON representation

Project for the 2024 course of HPC: generator of streamplot of complex-valued functions

Awesome Lists containing this project

README

        

# HPC-project-2024

This is the final project for the 2024 course of "High Performance Computing" of the Master degree "Quantum Engineering" at Politecnico di Torino.

Written in CUDA, the end result should be a CLI tool. Given a complex function (among a relative wide range of possibilities) and, optionally, the values of some options (width, height,fps, center, function parameters, etc.), such tool produces a video of the stream plot of the chosen function.

The general program flow is the following
1. Initial particle positions are generated using [Lloyd's algorithm](https://en.m.wikipedia.org/wiki/Lloyd's_algorithm)
2. The evolution of the particles is written on multiple canvases in order to parallelize writing on different OpenMP threads or CUDA thread blocks
3. For each frame, the same pixel of each canvas are combined into a single pixel which is drawn into the frame buffer
4. Frames are combined into a Webp container to build a Webp video

## Supported resolutions


NamePixelsRatio


VGA640x4804:3
SVGA800x600
XGA1024x768
QXGA2048x1536
qHD960x54016:9
FHD1920x1080
WQHD2560x1440
WQXGA+3200x1800
UHD3840x2160
FHD+1920x12803:2
UW-FHD2560x108021:9
UW-QHD3440x1440
WXQA1280x8008:5
WXGA+1440x900
WSXGA+1680x1050
WUXGA1920x1200
WQXGA2560x1600
WQUXGA3840x2400

## getopt

A port of the GNU library `getopt` for Windows was taken from [this repository](https://github.com/Chunde/getopt-for-windows)