We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Four Solutions to a Trivial Problem - Guy Steele Jr.
Four practical solutions to common parallelism pitfalls, including decomposition, variance, and language choice, to help you overcome obstacles and achieve parallelism in your applications.
- Problem decomposition is essential for parallelism, but the existing solutions often have flaws.
- Small groups can solve new problems by giving new directions.
- Fortress is designed to look like a mathematical notation.
- Variance in parallel processing can be overcome by use of accumulators, divide and conquer principles, and linear decomposition.
- The accumulation paradigm is important, and accumulation is bad, while divide and conquer is good.
- Monoid cache trees are useful, but often misunderstood.
- Parallelism can be improved with better dividing and conquering.
- The sequential solution to the problem is often unsuitable for parallel processing.
- Programmers tend to give up on parallelism when they hit obstacles.
- The management of parallelism is like garbage collection.
- It is essential to consider the shapes and sizes of tasks when trying to parallelize them.
- It may be helpful to identify and abstract away the parts of the problem that can be performed in parallel.
- It is possible to add a new layer of parallelism by breaking down the problem and processing in a tree-like structure.
- In some cases, like Fortress, the programmer must manually control the parallelism.
- The language choice plays a significant role in parallelism, and the right language can greatly impact the likelihood of portability and maintainability.
- In addition, the choice of data structures and algorithms must be made with parallelism in mind.
- The height and width of a glob (linked list) impact parallel processing.
- Bitonic globs can be used to facilitate parallel processing, and they can be combined.
- The incremental update operator is typically asymmetric.
- The maxinement and the splittensity of the task impact parallel processing.
- The evergreen parallel prefix and suffix operations can be computed using bitonic globs.
- Parallelism is often required for real-world problems.