Multi-threading Thoughts

Multi-threading Thoughts

  1. Performance Testing Factors into Ability to Debug
  2. Ability to Verify Swiftly Factors into Ability to Debug
  3. Throughput is Powerful and can easily be limited via overlap, requirements to access same data sets that can likely be reduced in many cases
  4. Tools and APIs that are easier to use give more time and surface area to actually test and debug multi-threaded code
  5. Single threaded does not guarantee less bugs
  6. Multi-threaded does not guarantee higher performance
  7. Ability to perceive problems that could be solved via multi-core systems factors into ability to magnify and use multi-core systems effectively. A problem that can easily be broken into smaller parts that have limited to no overlap are generally good candidates for concurrency.
  8. Latency and blocking can be expensive as far as losses to performance. Multi-threaded systems can generate greater performance and responsiveness yet are not guaranteed to generate more performance.
  9. Virtual threads that block until interrupts can likely be cheaper than continuous polling on timed intervals.
  10. A mutli-core system can be like 50 employees standing by on a moments notice to finish a task. Power available might lead to leveraged design choices. Multi-threaded approaches can produce greater value does not equal they are always the most simple, elegant, or performance increasing approaches.
  11. Multi-threaded approaches have potential for more complex problems like race conditions and deadlocks, potential for transient errors or errors with splitting the problem in non ideal ways, 2 threads 50 operations each given 101 where will the extra 1 operation go? Systems that reduce complexity around splitting problems into useful subsets can be powerful for both local multi-threaded computing and remote multi-system multi-core multi-threaded computing.
  12. Visibility has potential for being more obfuscated as the problem set is broken into more subgroups. 100 in two sets, 50 and 50 is different than 20 sets of 5. Issue is in first set or second set versus 7th or 13th set. 20 sets is more to debug, more to juggle, easy to null cost the price of complexity non ideally.

Published by techinfodebug

Flex and Java Developer, Christian, Art, Music, Video, and Vlogging

Leave a comment