HNHacker News
TopNewBestAskShowJobs

noneback

38 karma · joined October 23, 2024

https://github.com/noneback

https://noneback.github.io

submissionscomments
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
v0.1.2 released. I refactored and simplified APIs. I guess it is more coherent and easier to use than it used to be.

https://pkg.go.dev/github.com/noneback/go-taskflow

noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Yes. Data is attached to tasks via Go Native variable binding. Values are captured by task function once defined (closure). In some cases, You can change the value of the variable(like changing the value of ptr, rather than ptr itself) and rerun the whole graph to support your cases.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
I added a more realistic example, parallel_merge_sort, which demonstrates how to pass values and how to avoid a data race among tasks.

https://github.com/noneback/go-taskflow/blob/main/examples/p...

noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Good point. I will add some typically realistic scenario examples.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Totally agree. Dependency handling is quite tricky in a changing Dynamic Graph.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
It just uses native go function closure to hold and pass data among tasks, and it requires users to consider the data race problem. Cuz in some cases, tasks are executed in parallel.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Most credit to taskflow: https://github.com/taskflow/taskflow
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Visualizer and Profiler for graph-based task execution are crucial to improve user experience.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
That's why I decided to support static graphs in the first place. After all, in most cases, static graph programming is enough, and being a user-friendly really matters.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Yep. Rendering dynamic graphs is complicated, cuz dependencies change all the time.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Agree. lightweight embedded libs like go-taskflow are used in a much different way compared to distributed workflow systems. Coders should be aware of the pros and cons of those repos or systems.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
Not quite like although they may share some same concepts while using. go-taskflow is more like a lib or an embedded framework to organize task dependency and execute tasks in parallel rather than a platform.
noneback··on Go-taskflow: A taskflow-like General-purpose Task-parallel Programming Framework
A taskflow-like General-purpose Task-parallel Programming Framework with an integrated visualizer and profiler for Go, inspired by taskflow-cpp, with Go's native capabilities and simplicity, suitable for complex dependency management in concurrent tasks.