given that the processor is 64 bits, isn't it obvious that running the OS in 64 bits will be better in every way?
No actually, it's not. In some ways, running a 64 bit operating system could deteriorate the Raspberry Pi's performance.
Benefits of 64 bit:
The two primary benefits of using a 64 bit processor/operating system is that the device can handle ...
It's worth noting that the situation is different for ARM and Intel/AMD. That's because the switch to x86_64 was also used as an opportunity to update the badly-aging architecture, basically crippled by only having 8 general-purpose registers — and doubled in 64-bit mode. So, switching an Intel/AMD system to 64-bit mode also means enabling real features ...
By default, any computer will try to use all of its cores when it can. However, it can only achieve this when an application is multi-threaded. If it is not (i.e. a Python script that doesn't use the threading module), then it can only use at maximum, one core. This equates to 25% of the CPU on a four-core CPU. If you'd like to modify your script to use ...
At the end of your loop have a
time.sleep(xx) for seconds, or time.sleep(x.x) to represent partial seconds
(Please do remember to import the library time, like so: import time )
With xx being as high as possible without adversely effecting your program. Right now your program is always doing everything as fast as it can, rather than giving some time for ...
Be sure you really need to run your task repeatedly. This is called busy waiting and almost always suboptimal. If your task is checking for the output of a subprocess, you can just subprocess.wait() for it to finish, for example. If your task is to wait for a file or directory in the filesystem to be touched, you can use pyinotify to get your code ...
I was wondering if there is a simple way to "turn on" all 100% of the CPU so that I can run processes faster (such as python calculations).
Not in the sense that I think you are implying. This is not an issue specific to the pi, either, it is a logical constraint.
All by themselves computers currently do not have much capacity to determine that a process ...
For those coming here from Google.
You can get Raspberry CPU temp in Python using gpiozero package.
pip install gpiozero
Create your temp.py
from gpiozero import CPUTemperature
cpu = CPUTemperature()
$ python temp.py
GIL is a design specification of the Python language, rather than a limitation of the Raspberry Pi  (multiprocessing is possible in Python, often with only a few lines of code , but multithreading is generally not). The new processor will have no effect on the limitations associated with GIL.
No for python.
Other people are suggesting you to look into threading, which is a valid answer for most languages, but they didn't take into the account that you are using python.
The python GIL does not allow you to effectively make use of multiple cores.
No, there is no OpenCL on the Raspberry Pi as of 2014.
2018 update; there is now a work in progress.
The Arduino is a microcontroller not a SoC (think up to 16000x slower)
The Beagle Bone got some in 2015.
Odroids have had support since 2013?
Rock64 is missing support so far.
I'm assuming you have an RPi 1 (single core processor). Your code is far too intensive for any single core machine, and is terribly inefficient (but may sorta work) on a multicore machine. The problem lies in the logic of your code. You are using what's called "polling". Essentially, you're the kid that's constantly asking, "Are we there yet? Are we there ...
I am sure there are already people running Debian Aarch64 (ARMv8) on the Pi 3; it certainly would not be that hard for many people (see here for some clues about that might work)1 although for most users it is probably a bit of a stretch.
However, if Raspbian and/or the Foundation don't come out with a 64-bit version, you will increasingly see people with ...
There is no reason you couldn't design a custom PCB and stick a bunch of compute modules on them if you desired. There are a few "gotchas" though.
This wouldn't be particularly powerful. The chips used in the Raspberry Pi are old. Relatively ancient in the way high performance computers work. Sure you can have a dozen of the RPi's SOC chips, but is that ...
In theory, you could use the OpenGL API to speed things up a bit. There's no implementation of OpenCL for now. You could design your code such that its calculations are a fragment shader according to this answer.
You should also take a look at this link.
But before you do any GPU magic, take note that this will impose some overhead on the CPU. Only do this ...
As part of the launch publicity I saw it mentioned that one concern is the effort required to maintain two separate code bases (32 and 64 bit). the Adafruit PI3 Launch video also mentioned that the move to a 64bit processor was more about the clock speed increase the new chip provided than about using 64bit mode.
Yes, as the temperature rises the CPU frequency is lowered to prevent damage. The throttling begins around 82 degree Celsius. You can check the CPU Frequency with the following command:
or using the GUI widget.
The following links provide additional info and benchmarks:
All Raspberry Pis can play 1080p@30fps provided
the video is encoded with a codec the Pi can accelerate (i.e. h.264) - note that filename extension
doesn't always indicate the used codec correctly !
the video player you use can use hardware acceleration (only Kodi/omxplayer till date)
You might need to buy a MPEG-2 license since the Zero is too weak to ...
Monitoring system vital signs by conky and other similar applications is done with a combination of setting up event handlers and periodically polling various pieces of data.
Where the CPU time is really consumed is during the polling which is why when you pause conky you see the drop in CPU usage.
There are two fundamental approaches to reducing the load ...
Using multiple cores requires explicitly exposing thread-level parallelism to the OS, which usually requires the programmer to write a multi-threaded program. (Or to run a single-threaded program multiple times on different inputs, like compiling with make -j4)
Compilers for some languages support auto-parallelization, though. For example, C or C++ with ...
The following shell script uses the videocore utility vcgencmd measure_temp to get a line like temp=37.4'C. It then does some string magic to isolate the 37 from that string, which is then compared to 35. If it's smaller, it waits a second, then tests the temperature again. If it's 35 or more, $HOT_PID is killed. That PID was set to the program in question, ...
If it's the LXDE "Temperature Monitor", it seems to be just reading /sys/class/thermal/thermal_zone0/temp, which returns an integer value in millicelsius.
If it's not hard-coded, try setting the language/locale to where you are in raspi-config. Otherwise … welcome to how most of the world indicates temperature ☺
These commands should do it.
vcgencmd measure_clock arm
vcgencmd measure_volts core
If you like to monitor them in realtime, you can use watch:
watch -n1 "vcgencmd measure_clock arm && vcgencmd measure_volts core
or you can add a cronjob to write it inside file.
Is that what you are looking for?
There are people who have watercooled the pi, I believe mostly as a novelty since doing this will cost more than it could possibly be worth.
If you want something simpler, you could saw down a piece of heatsink, or ask at a computer store for something similar -- I recently got a B+ with an accessory package that (bizarrely) included aluminum sinks for the ...
Addressing the assertion that the 64 bit native programs are larger (more memory for data and pointers), and that there are no noticeable benefits to a 64 vs. 32 bit OS on ARMv8 with less than 4GB of RAM, I wish to raise a few points.
There are some significant differences in how things are done in ARMv7 (and before) and ARMv8, architecturally, that make ...
The 64-bit addressing can be useful even if you don't have more than 1GB of memory.
It allows you to memory-map large files, so you have a pointer and let the OS do the I/O transparently. Just another way of doing I/O.
You need a 64-bit addressing to do this on large files.
Another example where I see it can be useful is to allow processes to have more ...
This is useless as you don't seem to run GPU RAM heavy OpenGL applications. You don't need more than 128MB GPU RAM to run videos smoothly as the hardware decoder will use only a fixed amount. So increasing it will not fix your issue. On the other hand you are reducing the RAM for the ARM CPU and therefore forcing it to use the Swapfile. This dramatically ...
This is not how CPUs work... at all.
As it currently stands, your CPU is perfectly capable of running at 100% usage, assuming that it's not being throttled due to temperature related issues at 80 degrees Celsius or more. That being said, you don't (generally) want to see your CPU pegged at 100%. If you're routinely at 100% CPU utilization, you likely have ...
The other answers do give good detail, but don't seem to address your question(s) specifically.
Yes, if the program (and the operating system) are programmed to account for multiple cores. ('Threading' is the term in programming here)
The machine uses as much or as little of each core as it needs to, to complete the task. so there is no need to change ...