{"id":20579776,"url":"https://github.com/taskflow/gsoc2023","last_synced_at":"2025-03-06T11:47:50.757Z","repository":{"id":104845228,"uuid":"597811948","full_name":"taskflow/GSoC2023","owner":"taskflow","description":"GSoC 2023 Project Ideas","archived":false,"fork":false,"pushed_at":"2023-04-03T21:32:41.000Z","size":5,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-31T04:08:55.791Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taskflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-02-05T17:59:36.000Z","updated_at":"2023-11-26T11:36:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"bd409bea-2010-4ed9-84b6-169850984015","html_url":"https://github.com/taskflow/GSoC2023","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taskflow","download_url":"https://codeload.github.com/taskflow/GSoC2023/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242206006,"owners_count":20089252,"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":[],"created_at":"2024-11-16T06:18:34.735Z","updated_at":"2025-03-06T11:47:50.748Z","avatar_url":"https://github.com/taskflow.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 2023 Google Summer of Code (GSoC) Overview\n\nParallel programming has advanced many of today's scientific computing projects to a new level.\nHowever, writing a program that utilizes parallel and heterogeneous computing resources\nis not easy because you often need to deal with a lot of technical details,\nsuch as load balancing, programming complexity, and concurrency control.\n[Taskflow](https://taskflow.github.io/) streamlines this process and helps you quickly create \nhigh-performance computing (HPC) applications with programming productivity.\n\nAs the user community of Taskflow continues to grow (e.g., over 1.5M downloads),\nwe have identified an important project to enhance Taskflow's library infrastructure,\ndescribed below:\n\n## Project: Create Parallel Algorithm Primitives\n\nThe goal of this project is to establish a comprehensive set of task-parallel algorithm primitives\natop Taskflow and to strike a balance among programming productivity, performance, and portability.\n\n### Rationale\n\nParallel algorithm primitives, such as scan, reduce, sorting, and so on, \nare very common for most parallel applications. \nProgrammers can leverage these primitives to quickly parallelize fundamental algorithms without the need\nto rewrite these algorithms, manage the details, and tune the performance, all of which are known difficult\nto program correctly.\nHowever, the current version of Taskflow supports only a few sets of [parallel algorithm primitives](https://taskflow.github.io/taskflow/Algorithms.html) \nthat are not sufficient for the need of our users.\nThis project aims to overcome this challenge by completing a full set of parallel algorithm primitives\nbased on the newest C++17 parallel algorithm standards.\n\n### Approach\n\n1. Implement a full set of parallel algorithm primitives atop Taskflow based on [C++17 standards](https://en.cppreference.com/w/cpp/algorithm)\n2. Integrate the solution into the mainstream LLVM and GCC toolchains as a 3rd-party for parallel algorithm implementation\n3. Compare the solution quality with the existing implementation of Intel TBB\n\n### Expected Outcome\n\nWe will merge the solution to the main Taskflow parallel algorithm library. \nOur handbook will contain comprehensive instructions for reproducing the results and benchmarking the performance with Intel TBB.\nWe will also encourage participants to publis these results in related parallel computing conferences\nor arXiv journals and to present our findings in leading C++ communities (e.g., CppCon, CppNow).\n\n### Skills Required/Preferred\n\nParticipants should have decent C++14/17 programming experience. \nBasic knowledge about parallelism is preferred.\n\n### Mentors\n\nThe [Taskflow Team](https://taskflow.github.io/taskflow/team.html) will mentor this project throughout the course of summer code.\nParticipants should expect weekly project meeting to sync up the progress.\n\n### Expected Size of Project\n\nWe expect a *large size* (350 hours) for this project because it spans multiple activities, such as implementing algorithms, benchmarking the solutions, and deploying solutions to real use cases.\n\n### Difficulty Level\n\nWe rate this project an *medium* level of difficulty. This project primarily focuses on \n*using* Taskflow to implement parallel algorithms and applications, rather than developing\nthe Taskflow core functionalities. \nParticipants in this project will gain much practical and hands-on experience \nof parallel programming and understand the pros and cons of mainstream parallel programming tools.\n\n### Contact\n\nFeel free to reach out the tsung-wei.huang at utah.edu for any questions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskflow%2Fgsoc2023","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaskflow%2Fgsoc2023","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskflow%2Fgsoc2023/lists"}