bloomen / gcl Goto Github PK
View Code? Open in Web Editor NEWA graph concurrent library for C++
License: MIT License
A graph concurrent library for C++
License: MIT License
To improve performance we want to investigate using a custom mem allocator for tasks. In particular, an arena allocator may be useful.
Apparently, using futures is not the most efficient approach so we should investigate whether we can have a dedicated scheduler which collects all tasks and then offloads them to workers. Each worker could have its own queue. Once a task's parents have all finished a task is marked as ready and given to any worker. The worker will assign the result once finished.
I noticed that the cache entries listed in CMakeLists.txt
are all-lowercased.
Lines 4 to 7 in 541d398
However according to my observation, they are usually all-uppercased. At least, letters except the package name should be all-uppercased. That is:
Scheme 1:
GCL_BUILD_TESTS
GCL_ENABLE_ASAN
GCL_ENABLE_TSAN
GCL_ENABLE_COVERAGE
Scheme 2:
gcl_BUILD_TESTS
gcl_ENABLE_ASAN
gcl_ENABLE_TSAN
gcl_ENABLE_COVERAGE
1.1.0
Currently, gcl uses the simplest static task scheduling there is which may unnecessarily block worker threads. This may be useful: http://charm.cs.uiuc.edu/users/arya/docs/6.pdf
Can tasks_by_breadth
be made to run faster? Surely...
We want to use the address and thread sanitizers when running CI builds.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.