{"id":20579779,"url":"https://github.com/taskflow/gsoc2022","last_synced_at":"2026-03-09T19:06:57.482Z","repository":{"id":39250670,"uuid":"461047483","full_name":"taskflow/GSoC2022","owner":"taskflow","description":"2022 Google Summer of Code Idea List","archived":false,"fork":false,"pushed_at":"2022-09-12T10:23:29.000Z","size":5175,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-06T11:47:48.458Z","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}},"created_at":"2022-02-19T00:34:15.000Z","updated_at":"2023-08-04T17:42:42.000Z","dependencies_parsed_at":"2022-08-01T08:10:00.982Z","dependency_job_id":null,"html_url":"https://github.com/taskflow/GSoC2022","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/taskflow/GSoC2022","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2022","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2022/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2022/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2022/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taskflow","download_url":"https://codeload.github.com/taskflow/GSoC2022/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskflow%2FGSoC2022/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30308695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T17:35:44.120Z","status":"ssl_error","status_checked_at":"2026-03-09T17:35:43.707Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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:35.743Z","updated_at":"2026-03-09T19:06:57.453Z","avatar_url":"https://github.com/taskflow.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 2022 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.\nTaskflow 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 two specific projects to enhance Taskflow's infrastructure\nto facilitate its research and development:\n\n1. [Enhance Benchmarking Environment](#project-1-enhance-benchmarking-environment)\n2. [Enhance Pipeline Infrastructure](#project-2-enhance-pipeline-infrastructure)\n\nTimeline of GSoC is available [here](https://developers.google.com/open-source/gsoc/timeline).\n\n# Project 1: Enhance Benchmarking Environment\n\nThe project aims to enhance the benchmarking environment of Taskflow by adding \nmore realistic and reproducible testcases to the repository.\n\n## Description\n\nThe current benchmarking environment of Taskflow has been narrow on\nelectronic design automation (EDA) problems. \nMost of these benchmarks are embedded in applications themselves and are difficult to reproduce.\nMoreover, we need benchmarks from other applications, such as streaming, video processing,\nand high-performance computing (HPC)\nto make the broader computing community study the performance of Taskflow.\nWe have identified three specific tasks to enhance the benchmarking of Taskflow:\n\n1. Implement the standard [PaRSEC](https://parsec.cs.princeton.edu/) benchmarks using Taskflow\n2. Implement a standalone benchmark environment for our EDA applications ([OpenTimer](https://github.com/OpenTimer/OpenTimer), DREAMPlace, etc.)\n3. Implement baseline methods using mainstream programming systems (OpenMP, TBB, StarPU, etc.)\n\n## Expected Outcome\n\nWe will place the result in a new repository, namely `Benchmarks`, \nunder the [Taskflow Organization](https://github.com/taskflow). \nThe repository will contain comprehensive instructions for reproducing the results.\nWe will also encourage participants to publis these results in related parallel computing conferences\nor arXiv journals.\n\n## Skills Required/Preferred\n\nParticipants should have decent C++14/17 programming experience. \nBasic knowledge about parallelism is preferred.\n\n## Possible 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 350 hours for this project.\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 underatand the pros and cons of mainstream parallel programming tools.\n\n# Project 2: Enhance Pipeline Infrastructure\n\nThe project aims to enhance the the pipeline programming infrastructure of Taskflow by adding \na data abstraction layer with high scheduling performance.\n\n## Description\n\nTaskflow has introduced a new *task-parallel* pipeline programming framework in [v3.3](https://taskflow.github.io/taskflow/release-3-3-0.html).\nThe current pipeline design is primitive and does not provide any data abstraction.\nFor many data-centric pipeline applications, this can be inconvenient as users need to repetitively create data arrays.\nTherefore, the goal of this project is to derive a pipeline class with data abstraction\nto streamline the implementation of data-centric pipeline applications. \nWe have identified three specific tasks:\n\n1. Implement a new pipeline class with a data abstraction layer\n2. Implement unit tests \n3. Implement algorithms to avoid false sharing of data  \n\n## Expected Outcome\n\nThe implementation will be integrated into the core of Taskflow as a new algorithm module,\ntogether with its documentation in our [handbook pages](https://taskflow.github.io/taskflow/index.html).  \nWe will also encourage participants to publis these results in related parallel computing conferences\nor arXiv journals.\n\n## Skills Required/Preferred\n\nParticipants should have decent C++14/17 programming experience. \nBasic knowledge about pipeline parallelism is preferred.\n\n## Possible 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 350 hours for this project.\n\n## Difficulty Level\n\nWe rate this project a *difficult* level of difficulty, since it involves both implementation and algorithm challenges.\nHowever, participants in this project will not just learn how to implement a real module atop Taskflow\nbut also gain practical research knowledge about parallel scheduling algorithm.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskflow%2Fgsoc2022","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaskflow%2Fgsoc2022","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskflow%2Fgsoc2022/lists"}