0

How useful are the quad cores in the Raspberry Pi 2 and 3, and how does the 64 bit architecture express itself also in comparison to 32?

Are there any interesting lectures about those themes?

4

The use/effect of the cores depends on the software used, some things will take advantage of the multiple cores others cannot. In general the switch to a multicore processor has brought major performance improvements (some of it from the faster clock speed, and some from the multicore chip).

There is no current 64bit OS so all the software run is 32bit. Quoting the Pi Foundation's blog post announcing the Pi 3 "At launch, we are using the same 32-bit Raspbian userland that we use on other Raspberry Pi devices; over the next few months we will investigate whether there is value in moving to 64-bit mode." The choice of a 64bit chip was more about the increased clock speed.

There is a course about building a simple OS for the Raspberry Pi. I don't know that this has been updated for the multicore Pi's, or the Pi Zero, but it would be a good place to start.

  • Any program which uses threads will automatically use any available core(s). Of course a single threaded program will still benefit from not being scheduled out for background tasks to do their work - they can use the other cores. – joan Mar 4 '16 at 9:19
  • @joan Thank you, there will be a modest improvement in almost all cases. even in single threaded python scripts. – Steve Robillard Mar 4 '16 at 9:38
  • 1
    @joan: I take a slight issue with the bit about threaded programs. Threads do not always run on multiple cores. Python and Ruby both have global thread locks, so while they can have multiple threads, they do not take advantage of more than one CPU. This can be gotten around by creating a child processes, but then you're running a second instance of the interpreter, and you're dealing with multi-processes, not threads. – Jacobm001 Mar 4 '16 at 15:59
  • 1
    While each application may not take advantage of the multiple cores, the performance of the unit as a whole will increase. For example, in a multicore machine, I can have a python script computing a value, wget downloading a file, and the OS doing its OS things, all that the same time. Since each one of them gets a core to play with, the overall performance of the system is increased, even if it's not for a particular program. In a single core Machine, they would all have to compete for the same core, which will naturally make them slower, and adds processing queue overheads. – Jacobm001 Mar 4 '16 at 16:01
1

I attended the raspberry pi birthday bash yesterday, (saturday) and there was an interesting talk on concurrent programming which may answer some of your questions . The same talk was given at CAMJAM10 and has been uploaded to youtube. Steve

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.