Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/fedesky25/hpc-project-2024
- Owner: Fedesky25
- License: mit
- Created: 2024-08-04T14:11:02.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-14T17:50:53.000Z (3 months ago)
- Last Synced: 2025-02-05T05:44:17.585Z (9 days ago)
- Topics: complex-numbers, cuda, openmp
- Language: Cuda
- Homepage:
- Size: 271 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)