Multiprocessor

Multiprocessor in Byte Magaziene

Email to Steve Ciarcia ( Circuit Cellar Ink-paper owner and former writer to Byte magazine ->1987? )

Steve
Can you answer this question ?

http://www.8052.com/forum/read/104900

Back in the day Steve Ciarcia (Byte, and Circuit Cellar Mag) used 100 8051's to generate a mandlebot set. This was back when it <would have taken a PC a week to do it.
100 12MHz 8051 = 100MIPS.
And how long did it take the 100 8051's?

Reference to discussing what is RTOS ( Real Time Operating System) in our robotics wiki

(http://robotti.wikidot.com/reaaliaikasysteemit)

Can you give some hint or you may write about this in your column.

Regards Pekka Ritamaki


=== Steve anwers 13.11.2008=== =
Hi Pekka,

After talking with Ed Nisley, here’s how we see it:

—Steve


The initial image is the whole Mandebrot set, centered on

(-0.405,0) with a real axis size of 3.59 and aspect ratio of about 1.33. The image has 19.7% black

points (44154 pels) with an average 6.6 iterations/point and computes in 2.8 minutes. If overhead

in transmission and dot drawing weren't a factor, it would take 1.9 minutes.

A better measure is to run the same scene with an iteration count of 128. It takes 6.2 minutes to

display 37667 Mset points (16.8%), with an average of 15.0 iterations/point.

The communications and display overhead accounts for about

1.8 minutes of that time.

A LONG computation with this thing set to 1024 iterations is maybe 45 minutes…

I don't have comparative times, but it greatly outruns my 8 MHz AT/10 MHz 80287 running the

official IBM MSET program.

Benchmarking this thing is a problem because we don't have an apples-to-apples comparison with a

286 running the same code. Sometime Real Soon Now…

Ballpark performance: each iteration takes 5 to 7 ms per processor (including ALL overhead).

Divide by the number of processors to get the average time per iteration for the whole array. For

64 processors it's about 94 us, including the data transmission and dot drawing times. Your

mileage may vary, but that's a good starting point.


More stuff:


Figure 6 summarized a head head competition between an 8 MHz IBM AT and a Mandelbrot Engine with 64

processors. The AT takes 85 minutes to generate the same image that the Engine knocks off in 3.9

minutes. Adding a 10 MHz 80287 to the AT improves its performance to 9.7 minutes, while the Engine

drops to 2.8 minutes because of the improved speed in the driver program. Those numbers are worth

examining in more detail. The AT is slower than the Engine by a factor of 22! Adding an 80287

improves the AT by a factor of 8.8, but the Engine is 3.5 times faster than that. Not bad for a

bunch of single chip microcontrollers, eh?


The caption for that figure has more details:


Figure 6

Mandelbrot Engine vs PC AT

PC Hardware

8 MHz IBM AT

10 MHz 80287

256K IBM EGA with IBM ECD

calculations with double

precision floating point numbers

53 bits of precision

Mandelbrot Engine Hardware

64 processors

11.059 MHz crystal

28.8 K bits/second serial rate

calculations with fixed point numbers

64 total bits, 60 fractional bits

Mandelbrot Set Values

Center at

0.5 + 0i

Extent 3.5906642 + 4.775583i

Aspect ratio 1.33

Maximum of 16 iterations at each point

640 x 350 points

AT only

Engine

AT w/ math coprocessor:

85.0 min

2.8 min

AT w/o math coprocessor:

9.7 min

3.9 min

The Mandelbrot Engine found 44154 (19.71%) points in the Mandelbrot Set, while the AT only code

found 43471 (19.41%).


And another caption:


Figure 7

Mandelbrot Engine Performance

PC Hardware

8 MHz IBM AT

10 MHz 80287

256K IBM EGA with IBM ECD

calculations with double

precision floating point numbers

53 bits of precision

Mandelbrot Engine Hardware

varying number of processors

11.059 MHz crystal

28.8 K bits/second serial rate

calculations with fixed point numbers

64 total bits, 60 fractional bits

Mandelbrot Set Values

Center at

0.5 + 0i

Extent 3.5906642 + 4.775583i

Aspect ratio 1.33

Maximum of 64 iterations at each point

37636 (16.8%) points in the Mandelbrot Set # Procs Time Iter/pt Time/iter Total points

.335 ms

224000

.579 ms

224000

.886 ms

218400

.253 ms

224000

.622 ms

224000

.900 ms

218400

.700 ms

224000

The AT takes 21.7 minutes to generate this image and finds

37638

(16.8%) Mandelbrot Set points.


Heck of a gadget, back in the day, huh?

Lisää Steven kirjoituksia http://www.circuitcellar.com/archives/priorityinterrupt/205.html [http://www.circuitcellar.com/archives/priorityinterrupt/205.html]

Ed kirjoitus samasta asiasta
[http://robotti.wikidot.com/local--files/multiprocessor/mandelbrot_ed_nisley.txt]

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License