Amdahl’s Law and Price Elasticity

I have just noticed that Amdahl’s Law used in measuring processor performance is similar with the Price Elasticity Law (I read from the book “Starbucks (Corporations that Changed the World) – Marie Bussing-Burks”) in economic concepts.

The same principle is that there is a limit in increasing processing performance to get more throughput, or to rephrase it in business language: there is a limit in reducing price of an item to get more revenue.

Amdahl’s Law says that speedup is how a machine performs after enhancement. A SpeedUp(E) = Performance with E / Performance without E = Execution time without E / Execution time with E. Execution time = Execution time unaffected + (Execution time with E / Amount of improvement).

(Notes: Examples is taken from EL 2244 Course being taught at ITB this semester. The reference book is John L. Hennessy and  David A. Patterson , Computer Organization and Design: The Software Hardware Interface, Morgan Kaufmann Publishers, 4th Edition, 2009.)

Ex. 1:

A program runs in a machine in 10s. 50% of the time is doing multiplications. If we improve the multiplication unit so it runs twice as fast, how big is the speed up?

Exec_time(E) = (Affected_exec_time/improvement) + unaffected_exec_time

= (5s/2) + 5s = 7,5 s

Speed_up(E) = 10s/7,5s = 1,333  which is not 2 times faster

Ex. 2:

A program runs for 10s. 70% of the time is doing additions. How much improvement on the additions if we want to reduce the running time to 3s?

Exec_time(E) = (Affected_exec_time/improvement) + unaffected_exec_time

3s = (7s/n) + (10-7)s

3s = (7s/n) + 3s

0 = 7s/n

No amount of improvement can reduce the running time to 3s.

Now let’s see the Price Elasticity Law. Price Elasticity (E) = % change in quantity demand / % change in price.

Ex 1:

If we reduce the price of 36 inch TV from \$450 to \$400, the average price would be \$425. The absolute value of percentage change = \$50/\$425 = 0.118. Number of unit sold is increased from 200 to 300 so the average number of unit sold = 250.

So the percentage  of change in quantity demand is 100/250 x 100% = 40%.

The price elasticity = 0.4/0.118 = 3.39%

If the absolute value of price elasticity is between 0 – 0.99, demand is inelastic. Necessity items like coffee, milk, gasoline, prescription drugs are tend to be relatively insensitive to price change.

Ex 2:

A store manager drops the price of a gallon of milk from \$4 to \$3. The average price will be \$3.5. The absolute value of % change = \$1/\$3.5 = 0.29

Milk sold going from 10 to 11. The average number of gallon sold = 10.5. Percent of change in quantity demand = 1/10.5 = 0.1.

Price elasticity = 0.1/0.29 = 0.34. The demand is inelastic.

So if demand is elastic, a price cut will increase total revenue (and an increase in price will mean lower total revenue). If we take Ex 1:

price x quantity = total revenue

\$450 x 200 = \$90,000

\$400 x 300 = \$120,000

While when demand is inelastic, a price cut will decrease total revenue. As in Ex 2:

\$4 x 10 = \$40

\$3 x 11 = \$33.

The conclusion is that in terms of machine performance and total revenue, there is a limit to get “improvement”. There is a certain point that we cannot further improve the speed of a machine as well as there is a certain point that we cannot change price to get more total revenue.  Reed Solomon – A Brief Introduction

Reed Solomon is one brilliant error correction method that is a non-binary cyclic codes. The codeword looks like the picture below. It has symbols in m-bits. The bit string is treated as a group of bits. The group of bits is treated as non-binary. We will see how it makes this method powerful. Let’s take an example of RS(15,11). This means that we have the codeword with length 15 bits that consists of original message 11 bits  and 4 bits for parity. t is how many errors (in symbols or group of bits) that can be corrected.

p(x) or irreducible polynomial is used to generate the finite field like shown in the table below. Now we need a generator to start the encoding process.    The process of decoding includes several steps. Let’s take an example of double-symbol error. The first process is computing the syndrome to detect the error. For this case will have 4 syndromes: S1, S2, S3 and S4. Each S that is not equal to 0 contains error. The second step is locating the error in e(x). This can be done using matrix. After the location has been determined, now it is the time to calculate the values of the error so we can correct the error. Done. We get the message corrected. Do you notice that detecting the errors in symbols (groups of bits) in this method makes it runs faster?  2013 in review

The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog. Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 17,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 6 sold-out performances for that many people to see it.

Click here to see the complete report.  