{"id":20968950,"url":"https://github.com/lind026/mthpc","last_synced_at":"2025-05-14T09:34:06.687Z","repository":{"id":64048698,"uuid":"570035196","full_name":"linD026/mthpc","owner":"linD026","description":"Multiple Threads, Parallelism and Concurrency Library (MTHPC)","archived":false,"fork":false,"pushed_at":"2024-10-02T20:16:29.000Z","size":219,"stargazers_count":8,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T16:48:54.249Z","etag":null,"topics":["c","concurrency","lock-free","multithreading","parallelism"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linD026.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":"2022-11-24T07:31:02.000Z","updated_at":"2024-11-21T10:31:29.000Z","dependencies_parsed_at":"2024-03-04T16:10:17.921Z","dependency_job_id":"75eb43bc-0e52-48e6-b858-04d6b0776f0d","html_url":"https://github.com/linD026/mthpc","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/linD026%2Fmthpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linD026%2Fmthpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linD026%2Fmthpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linD026%2Fmthpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linD026","download_url":"https://codeload.github.com/linD026/mthpc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254112653,"owners_count":22016817,"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":["c","concurrency","lock-free","multithreading","parallelism"],"created_at":"2024-11-19T03:17:40.030Z","updated_at":"2025-05-14T09:34:06.239Z","avatar_url":"https://github.com/linD026.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mthpc\n\nmthpc is parallelism and concurrency library for C language. It targets to\nimprove the parallel and concurrent part of userspace C. mthpc provides the\nthread framework, asynchronous worker (deferred work), synchronous mechanisms,\nand some concurrent data structures. mthpc is based on [C11 Atomics](https://en.cppreference.com/w/c/thread)\nand [POSIX Threads](https://en.wikipedia.org/wiki/Pthreads).\n\n## Build\n\nTo build the mthpc library, use the following commands.\n\n```bash\nmake build          # Build the library and headers in mthpc directory\nmake lib            # Build the library only\nmake clean          # Delete generated files\n```\n\nThe default building will generate the dynamic library. If you want to generate\nthe static library, add the paramter `static=1`.\n\n---\n\n## Features\n\nThe mthpc library provides the synchronous mechanisms, concurrncy data\nstructures, and more. See all the features in [api.md](doc/api.md).\n\n---\n\n## Development\n\nFor the development, the mthpc library provides the Makefile paramter,\n `debug=1`, to verify the action in runtime.\n\nAll the featues have the test program(s) in their own directory, for example,\nrcu feature has `new_test.c` and `test.c` in `src/rcu/`. And, we can run the\ntest program(s) with the command, `bash script.sh`.\n\n## Compare with [urcu](https://github.com/urcu/userspace-rcu)\n\u003e Before running the benchmark, we need the userspace-rcu lib.\n\nWe run 100 readers and single writer. And, the hardware is i7-8750H with 6 cores.\n\n```\n# Source: tests/urcu-benchmark/logs/log-test-urcu-timing-2023-04-19\n\n## urcu\n\nTime per read : 596.663 cycles\nTime per write : 6.25778e+07 cycles\n\n## mthpc\n\nTime per read : 569.977 cycles\nTime per write : 6.91447e+07 cycles\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flind026%2Fmthpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flind026%2Fmthpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flind026%2Fmthpc/lists"}