CS0051 - Module 01 - Subtopic 1
CS0051 - Module 01 - Subtopic 1
CS0051 - Module 01 - Subtopic 1
• Better tools
• Component Libraries
• Scalability
• A system is considered scalable if its performance improves after adding more processing
resources. In the case of sequential computing, the only way to scale the system is to increase the
performance of system resources used – CPU, memory, etc.
• Overhead
• In the sequential computing, no communication or synchronization is required between different
steps of the program execution. But there is an indirect overhead of the underutilization of
available processing resources
• Concurrency is when multiple tasks can run in overlapping
periods. It's an illusion of multiple tasks running in parallel
because of a very fast switching by the CPU. Two tasks
can't run at the same time in a single-core CPU
Image: https://golangbot.com/concurrency/
• Parallelism is when tasks actually run in parallel in multiple
CPUs
Image: https://golangbot.com/concurrency/
Image: https://devopedia.org/concurrency-vs-parallelism
• Complexity of designing parallel algorithms
• Removing task dependencies
• Can add large overheads