{"id":13730049,"url":"https://github.com/GameTechDev/GTS-GamesTaskScheduler","last_synced_at":"2025-05-08T02:31:16.542Z","repository":{"id":41192407,"uuid":"176371568","full_name":"GameTechDev/GTS-GamesTaskScheduler","owner":"GameTechDev","description":"A task scheduling framework designed for the needs of game developers.","archived":true,"fork":false,"pushed_at":"2023-01-03T22:53:24.000Z","size":5503,"stargazers_count":447,"open_issues_count":0,"forks_count":44,"subscribers_count":31,"default_branch":"master","last_synced_at":"2024-11-14T20:39:13.207Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/GameTechDev.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}},"created_at":"2019-03-18T21:21:41.000Z","updated_at":"2024-11-12T17:02:14.000Z","dependencies_parsed_at":"2023-02-01T12:16:52.502Z","dependency_job_id":null,"html_url":"https://github.com/GameTechDev/GTS-GamesTaskScheduler","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/GameTechDev%2FGTS-GamesTaskScheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameTechDev%2FGTS-GamesTaskScheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameTechDev%2FGTS-GamesTaskScheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameTechDev%2FGTS-GamesTaskScheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameTechDev","download_url":"https://codeload.github.com/GameTechDev/GTS-GamesTaskScheduler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252986717,"owners_count":21836212,"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-08-03T02:01:09.136Z","updated_at":"2025-05-08T02:31:11.553Z","avatar_url":"https://github.com/GameTechDev.png","language":"C++","readme":"# DISCONTINUATION OF PROJECT #\nThis project will no longer be maintained by Intel.\nIntel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.\nIntel no longer accepts patches to this project.\n[![maintained](https://img.shields.io/maintenance/yes/2021.svg)]()\n[![license](https://img.shields.io/badge/License-MIT-blue.svg)]()\n[![language count](https://img.shields.io/github/languages/count/GameTechDev/GTS-GamesTaskScheduler.svg)]()\n[![top language](https://img.shields.io/github/languages/top/GameTechDev/GTS-GamesTaskScheduler.svg)]()\n\n# Intel Games Task Scheduler (GTS)\n\n\u003e To the [documentation](https://gametechdev.github.io/GTS-GamesTaskScheduler/documentation/html/index.html).\n\n## Introduction\n\nGTS is a C++ task scheduling framework for multi-processor platforms. It is designed to let\ndevelopers express their applications in task parallelism and let the scheduling framework\nmaximize the physical parallelism on the available processors.\n\n### Key Goals\n\n* **Simple expression of task parallelism**\n* **Highly efficient scheduling**\n* **Easy to configure and extend**\n\n### Target Audience\n\nGTS is designed for the needs of current and future game engine developers. Typical engine developers employ a highly\ncustomized, platform-scalable task system (or job system) that provides dedicated worker threads\nexecuting thousands of concurrent tasks. These threads may also share resources with driver,\nnetworking, middleware, and video streaming threads, all working in synchronized concert to \ndeliver glitch-free real-time rendering on 60+ frames per second (FPS) applications. Future game\nengines will have to cope with more threads, more tasks, and potentially multiple\ninstruction-set-architectures (ISAs), all running on an ever-expanding hardware landscape. \n\nWe built GTS to be simple and friendly to game engine task system use cases. We want a framework\nthat allows the game development community to experiment with and learn from different scheduling\nalgorithms easily. We also want a framework that allows us to demonstrate state-of-the-art algorithms\non task scheduling. Finally, we want to encourage games to better express parallelism so they can\ncompute more cool stuff and enable richer PC gaming experiences!\n\n### Features\n\n* Easily integrate GTS into an existing game engine complete with low level platform \noverrides. Game engines support a wide variety of operating systems and hardware platforms,\nwith varying degrees of custom code and work-arounds. Since GTS cannot possibly\nsupport every work-around and corner case, we have simplified engine integration\nby allowing the developer to completely replace the GTS platform layer through\na configuration file (user_config.h). \n* Express high-level program flow with persistent, dynamic task DAGs that can be\nexecuted homogeneously or heterogeneously with the Macro-Scheduler\n* Jump right into parallelism with predefined Parallel Patterns\n* Easily communicate between threads with Parallel Containers\n* Carve up CPU resources as you see fit with the WorkerPool\n* Express low-level algorithms and highly efficient execution policies with the Micro-scheduler\nand Task constructs.\n* Remove bottlenecks around heap access with gts_malloc.\n* Avoid contention and kernel-mode synchronization with GTS's user-mode synchronization primitives and contention \nreducing constructs.\n* OS-header-free and mostly STL-free interface. GTS won't pollute your engine with unnecessary headers.\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n","funding_links":[],"categories":["Concurrency","C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGameTechDev%2FGTS-GamesTaskScheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGameTechDev%2FGTS-GamesTaskScheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGameTechDev%2FGTS-GamesTaskScheduler/lists"}