{"id":17632701,"url":"https://github.com/fedesky25/hpc-project-2024","last_synced_at":"2025-03-30T03:32:14.266Z","repository":{"id":251621824,"uuid":"837945839","full_name":"Fedesky25/HPC-project-2024","owner":"Fedesky25","description":"Project for the 2024 course of HPC: generator of streamplot of complex-valued functions","archived":false,"fork":false,"pushed_at":"2024-11-14T17:50:53.000Z","size":278,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T03:31:47.886Z","etag":null,"topics":["complex-numbers","cuda","openmp"],"latest_commit_sha":null,"homepage":"","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fedesky25.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-04T14:11:02.000Z","updated_at":"2024-11-14T17:50:57.000Z","dependencies_parsed_at":"2024-10-23T07:18:55.896Z","dependency_job_id":"434dc759-c3ce-4bbc-8f77-6c637d15cc2c","html_url":"https://github.com/Fedesky25/HPC-project-2024","commit_stats":null,"previous_names":["fedesky25/hpc-project-2024"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedesky25%2FHPC-project-2024","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedesky25%2FHPC-project-2024/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedesky25%2FHPC-project-2024/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedesky25%2FHPC-project-2024/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fedesky25","download_url":"https://codeload.github.com/Fedesky25/HPC-project-2024/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246273533,"owners_count":20750904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["complex-numbers","cuda","openmp"],"created_at":"2024-10-23T01:45:10.676Z","updated_at":"2025-03-30T03:32:14.246Z","avatar_url":"https://github.com/Fedesky25.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HPC-project-2024\n\nThis is the final project for the 2024 course of \"High Performance Computing\" of the Master degree \"Quantum Engineering\" at Politecnico di Torino.\n\nWritten 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.\n\nThe general program flow is the following\n1. Initial particle positions are generated using [Lloyd's algorithm](https://en.m.wikipedia.org/wiki/Lloyd's_algorithm)\n2. The evolution of the particles is written on multiple canvases in order to parallelize writing on different OpenMP threads or CUDA thread blocks\n3. For each frame, the same pixel of each canvas are combined into a single pixel which is drawn into the frame buffer\n4. Frames are combined into a Webp container to build a Webp video\n\n\n## Supported resolutions\n\n\u003ctable style=\"text-align: center\"\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\u003cth\u003eName\u003c/th\u003e\u003cth\u003ePixels\u003c/th\u003e\u003cth\u003eRatio\u003c/th\u003e\u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\u003ctd\u003eVGA\u003c/td\u003e\u003ctd\u003e640x480\u003c/td\u003e\u003ctd rowspan=\"4\"\u003e4:3\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eSVGA\u003c/td\u003e\u003ctd\u003e800x600\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eXGA\u003c/td\u003e\u003ctd\u003e1024x768\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eQXGA\u003c/td\u003e\u003ctd\u003e2048x1536\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eqHD\u003c/td\u003e\u003ctd\u003e960x540\u003c/td\u003e\u003ctd rowspan=\"5\"\u003e16:9\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eFHD\u003c/td\u003e\u003ctd\u003e1920x1080\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWQHD\u003c/td\u003e\u003ctd\u003e2560x1440\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWQXGA+\u003c/td\u003e\u003ctd\u003e3200x1800\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eUHD\u003c/td\u003e\u003ctd\u003e3840x2160\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eFHD+\u003c/td\u003e\u003ctd\u003e1920x1280\u003c/td\u003e\u003ctd\u003e3:2\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eUW-FHD\u003c/td\u003e\u003ctd\u003e2560x1080\u003c/td\u003e\u003ctd rowspan=\"2\"\u003e21:9\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eUW-QHD\u003c/td\u003e\u003ctd\u003e3440x1440\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWXQA\u003c/td\u003e\u003ctd\u003e1280x800\u003c/td\u003e\u003ctd rowspan=\"6\"\u003e8:5\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWXGA+\u003c/td\u003e\u003ctd\u003e1440x900\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWSXGA+\u003c/td\u003e\u003ctd\u003e1680x1050\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWUXGA\u003c/td\u003e\u003ctd\u003e1920x1200\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWQXGA\u003c/td\u003e\u003ctd\u003e2560x1600\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWQUXGA\u003c/td\u003e\u003ctd\u003e3840x2400\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n## getopt\n\nA port of the GNU library `getopt` for Windows was taken from [this repository](https://github.com/Chunde/getopt-for-windows)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedesky25%2Fhpc-project-2024","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedesky25%2Fhpc-project-2024","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedesky25%2Fhpc-project-2024/lists"}