Questions tagged [parallelism-amdahl]

Amdahl's law, also known as Amdahl's argument, is used to find the maximum expected improvement to an overall system when only part of the system is improved. It is often used in parallel computing to predict the theoretical maximum speedup using multiple processors. The law is named after computer architect Gene Amdahl, and was presented at the AFIPS Spring Joint Computer Conference in 1967.

Amdahl's law, also known as Amdahl's argument, is used to find the maximum expected improvement to an overall system when only part of the system is improved. It is often used in to predict the theoretical maximum speedup using multiple processors. The law is named after computer architect Gene Amdahl, and was presented at the AFIPS Spring Joint Computer Conference in 1967.

The speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the program. For example, if a program needs 20 hours using a single processor core, and a particular portion of the program which takes one hour to execute cannot be parallelized, while the remaining 19 hours (95%) of execution time can be parallelized, then regardless of how many processors are devoted to a parallelized execution of this program, the minimum execution time cannot be less than that critical one hour. Hence the speedup is limited up to 20x.

106 questions
4
votes
2 answers

Efficient treatment of tuples as fixed-size vectors

In Chapel, homogeneous tuples can be used as if they were small "vectors" ( e.g., a = b + c * 3.0 + 5.0; ). However, because various math functions are not provided for tuples, I have tried writing a function for norm() in several ways and compared…
roygvib
  • 7,218
  • 2
  • 19
  • 36
3
votes
2 answers

Calculate performance gains using Amdahl's Law

I am puzzling with Amdahl's Law to determine performance gains and the serial application part and fail to figure out this one. Known is the following: S(N) = Speedup factor for (N) CPU's N = Number of CPU's f = The part of the program which is…
3
votes
1 answer

Negative speed up in Amdahl's law?

Amdahl’s law states that a speed up of the entire system is an_old_time / a_new_time where the a_new_time can be represented as ( 1 - f ) + f / s’, where f is the fraction of the system that is enhanced by some modification, and s’ is the amount by…
3
votes
3 answers

Why does Dask perform so slower while multiprocessing perform so much faster?

To get a better understanding about parallel, I am comparing a set of different pieces of code. Here is the basic one (code_piece_1). for loop import time # setup problem_size = 1e7 items = range(9) # serial def counter(num=0): junk = 0 …
user10449636
3
votes
3 answers

Intel TBB flowgraph overhead

Here is my attempt to benchmark the performance of Intel TBB flow graph. Here is the setup: One broadcast node sending continue_msg to N successor nodes ( a broadcast_node ) Each successor node performs a computation that takes t…
3
votes
2 answers

Will we see an expected speedup in Chapel if running "inside" VMs?

I'm teaching with Chapel next semester and we are considering using a VM for students to program on instead of a physical machine. As part of class, I want students to be able to see speedup when using multiple threads. I fear that they won't be…
Kyle
  • 554
  • 3
  • 10
3
votes
1 answer

How non-trivial should a computation be to make it reasonable to get it sparked for a parallel execution in Haskell?

According to the doumentation for Control.Parallel, one should make sure that the computation being sparked is non-trivial so that creating the spark is cheaper than the computation itself. This makes sense, but after listening to Bartosz Milewski…
Eben Kadile
  • 759
  • 4
  • 21
3
votes
1 answer

How accurate is amdahl's law?

In computer architecture, Amdahl's law gives the theoretical speedup in latency of the execution of a task at fixed workload that can be expected of a system whose resources are improved. Slatency is the theoretical speedup in latency of the…
Tony Tannous
  • 14,154
  • 10
  • 50
  • 86
3
votes
2 answers

Alpha-Beta "breaking" the Amdahl's law?

I have a classic minimax problem solver with additional alpha-beta pruning implementation. I parallelized the algorithm in the following way: Do iterative deepening until we have more nodes than available threads Run one minimax per thread in…
cen
  • 2,873
  • 3
  • 31
  • 56
2
votes
1 answer

Performance measure on data sizes and identical resources

I have systems that have a large number of cores as well as a cluster. For a particular task for which no serial implementation is available, I can only benchmark w.r.t. time taken for tasks running on different input sizes. I see that even when…
2
votes
1 answer

How to parallelize a class method in python?

I have a class with a method foo(), and a dictionary with a bunch of objects of that class. How can I parallelize the execution of foo() in my collection of objects? class MyClass: def __init__(self,a): self.a = a def foo(): …
SandiaDeDia
  • 291
  • 2
  • 9
2
votes
1 answer

Python joblib - Running parallel code within parallel code

I am working on a project that I intend to make more efficient by using a parallel function with joblib with shared memory. However, I also intend to conduct a parametric study on the program by running the process a large number of times with…
2
votes
1 answer

Parallel computing: how to share computing resources among users?

I am running a simulation on a Linux machine with the following specs. Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 80 On-line CPU(s) list: 0-79 Thread(s) per core:…
2
votes
2 answers

Why the speedup of parallel programming using Executor larger than cores?

I am writing a program dealing with matrix parallel programming using Executorservice framework. And I set the fixedpoolsize to 4, however what surprises me is that when the matrix dimension is set to 5000, the speedup of using multithreading…
2
votes
2 answers

N-jobs on M-machines with Precedence Graph and different execution times

Let's assume I have n jobs and m machines. The jobs have precedence constraints (given in a directed, acyclic graph) and different execution times. The schedule must NOT be preemptive. What's the best algorithm to schedule them? Any suggestions? I…