|Product Performed to Expectations:||10|
|Specifications were sufficient to design with:||10|
|Demo Software was of good quality:||10|
|Product was easy to use:||10|
|Support materials were available:||10|
|The price to performance ratio was good:||10|
|TotalScore:||60 / 60|
I am aware this is an uncommon road test.
I have based the testing of this new device trying to push the usage to the limits making two kinds of computer machines. Instead of designing some specific projects based on the Raspberry Pi 4 I have assembled a Raspberry Pi desktop and a four-nodes cluster. I should thank first of all rscasny that with a lot of patience got me more time to be able to write down the road test; the desktop and cluster projects are also two chapters of the Italian book I wrote for the Italian publisher Hoepli, dedicated to the Raspberry Pi, updated to the Pi 4B available on Amazon and the Italia libraries next May. Another big thank will go to the effort of e14phil and Rob Zwetsloot from the Raspberry Pi Foundation that helped me providing four extra Pi 4B just for this project time before the new model was distributed to the mass market.
The first test I have done using a Pi 4B with 4Gb Ram is creating a workstation, then using it for everyday jobs.
The image above shows the first set up I have done for this test in my company office where I have a number of HDMI monitors available. I used this first assembly (just connected the peripherals) for a couple of weeks. I was really surprised about the responsiveness of the dual-screen setting, incredibly powerful and well working. Here I have used two HDMI full HD screens and – thanks to using the 4 Gb Ram model I have tried to dedicate to it 512 Mb of shared memory reserved for the graphic memory. Also with the 2Gb Ram model the performances – with 512 Mb dedicated to the shared video memory – were the same. The dual-screen management of the Raspbian Buster is also excellent; are possible different settings of the desktop icons and the control bar: you can set the system to use one of the two monitors as a secondary screen, e.g. to show videos and images while the other screen contains the toolbar and the desktop icons, as well as setting the toolbar on both screens. Moving the mouse in the two areas is fluid and the system behaves as a single wider screen.
As I wrote before, the Pi 4B works fine with the Raspberry 7 inches touch screen but due to the touch screen size I met some functional issues on some programs; a recurring issue is with those applications where the graphic UI is bigger by default than the resolution of the screen so you lose a part of it.
Regardless of this detail – affecting also the previous models – the performances and the incredibly low price of this device, together with the possibility to easily power it by batteries and the small form factor makes the Pi 4B the ideal core board for mobile custom machines, including a lot of possibilities thanks to the hardware GPIO accessibility: the only detail I think should be cared of is the use of a small (between 7 and 10 inches) HDMI screen, considering that it can be easily connected to a second HDMI screen. A complete workstation with a lot of possibilities.
There are two aspects that are related to the Pi 4B: the first is the problems related to the temperature and the second is the powerful GPU. We can say that these are a pro and a con. Before using the workstation in the two-screen setup I have added a simple passive thermal heat sink kit. This cheap add-on (less than 2$) has been sufficient to grant the work without overheating risk. When the Raspberry Pi 4B was in my company office I had to try to convert some C++ libraries from the Qt MinGW environment to the Raspberry PI; these libraries use OpenCV 3.x but the binaries are not yet available on the Buster Raspbian. So, I decided to build OpenCV from sources. The compile process required almost half of the time needed on the previous model 3B without experiencing any kind of thermal failure.
When I moved the workstation at home (where I only have a single HDMI spare monitor) I adopted another setting, shown in the below image.
Excluding the single monitor, this setting is the same as the one I used before; after configuring the machine the desktop has been left powered on by almost one month without problems. As I wanted to test the graphic performances and stability with some kind of video processing I have added a 120 Gb SSD external storage connected to the Raspberry Pi via a SATA II to USB 3 adapter. Then the Raspberry Pi now is in a 3D printed case; the machine is still without a cooling fan (only the passive heatsink). Then I have installed OpenShot, a non-linear video editor to start making some tests impossible to think with the previous generations of Raspberry Pi.
The commonly called "Full HD" video format is the classical high-resolution videos we are mostly used to see, with a resolution of 1920x1080. Almost all the most recent DSLR cameras, sport-camera (like GoPro), and smartphones can shoot videos in 4K, that is the double of the Full HD format. So, to the question if the last generation of Raspberry Pi can support (and play) the 4K video format the answer is no; and this is one of the graphic limits of the machine. Really the answer is no?
I tried to play a 4K video with the VLC video player available after the Buster installation (full desktop version) and the result is a sort of scrambled video impossible to view. But I think that under the hardware point of view the Raspberry Pi has nothing strange to avoid accepting this format; just for an exercise (for now) I have imported the "unplayable" 4K drone shooting with the OpenShot video editor mentioned above: and I saw a perfect preview in the editor screen. This confirmed my supposition that this supposed limit is mostly related to the software and the encoders currently available for the Buster distribution. I hope that in the near future these will be updated to support also this format without limitations.
As a further test and to definitely verify this partial limitation I have used the same editor just to export the 4K video in the Full HD format. A good test, as resizing the frames is a time-consuming task stressing both the CPU and the GPU. The conversion was perfect – compared to other professional tools I use on Mac for my video productions and the conversion example is shown below.
The next step has been trying to edit a couple of short scenes (converted to Full HD) adding some digital effect, all produced with the Raspberry Pi 4B. The video below shows the result; the entire workflow of the video required about 20 minutes.
During this second more complex text I have checked the following critical points:
Below: some images during the video testing
The video editing process using a non-linear video editor like the one I used, includes some very critical factors where the power of the processor and the GPU are strategical.
To create the short clip with the 3D title shown above I have followed the simplified workflow shown in the above scheme. Fades (like the common cross-dissolve effect) and transitions between different scenes are one of the most critical points; when you edit the timeline adding effects need time to render the preview to see how the effect works and then when you produce the final video, transitions and effects are applied with to a higher detail (mostly depends on the final video resolution). The 3D effect of the opening title has been rendered separately: after setting the text content, font and effect parameters the program renders a clip that can be added to the timeline. The other step that needs a lot of time is the video render when the editing is complete and we should save the video on file. Working with the clip files on an SSD, thanks to the USB 3 ports provided on the Raspberry Pi 4B I saw a really performance improvement than using the same external SSD storage with a model of the previous generation of Raspberry Pi (3B and 3B+)
The hardware architecture of the new Pi 4B also considerably improve the memory management and internal communication between the GPU and processor. As a benchmark, I tested the time needed to make this video assembly on the Pi about 2 times faster than a Macbook air with i5 core 2.3 GHz and SSD storage. I am planning to do more complex tests in the future, but I should admit that this is the first Pi model that can really be a performing alternative as an everyday desktop computer (or mobile device).
There is a lot of blogs and articles saying that one of the major issues of the Raspberry Pi 4B is the excessive temperature posing at risk the components when it is used for a long time and for stressing tasks. This desktop has been powered for at least 3/4 of the time I own it – this means months – with only the heatasinks thermal protection on the ICs and never crashed also during long compilations (about two hours) or several video editing tests, always powering external storage via the USB 3.
Anyway, I strongly suggest adding the heatsinks to the Pi before the first power-on and when possible a small fan that undoubtedly keep the temperature lower, especially when the Pi is inside a case or a project build that does not grant a good air-flow. I think too that some exaggeration like liquid cooling or oversized fans just contributes to an aesthetical improvement than a real benefit to the performances.
The average temperature of the Pi when doing normal tasks like using the libre office, hearing music or viewing videos browsing the web is always between 50 C and 60 C. When doing long C++ compilation the temperature never raised 68 C. Then I have done some specific tests with editing critical steps involving both the CPU and GPU. Also for relatively long processes, like a 4K to Full HD video conversion, the system continued staying responsive running other tasks like sending finished files to a remote computer via the WiFi or browsing the Web.
The system shows a blinking red thermometer when the temperature reaches 70 C but the highest acceptable temperature before entering into the hardware risk zone (or having a CPU slowdown) is 80 C.
Above image: the average temperature while the system is running in no-stressing conditions
The three temperature curves below show respectively:
1. Six minutes time frame while a video conversion from 4K to Full HD is at 50%, so the higher reachable temperature has already occurred.
2. Four minutes' time frame while the program was rendering the 3D graphic title you see in the first video of this review (it needed about 4 minutes to completely render the scene).
3. Four minutes' time frame during the final video rendering (it needs about 3,5 times the full video duration on the timeline).
The interesting aspect you can note in the below graphic recordings is the temperature oscillation; this means that the temperature control is very reactive and the system temperature grows only when the system is really under a stress task then immediately decrease in a few seconds.
Above: a shot during the video conversion from 4K to Full HD.
At the date, while I am writing this review, the workstation is powered on and running in my lab accessible via the VLC from everywhere.
The second experimental project, that I started using proactively for image conversions and other time-consuming tasks is the building of a four nodes Cluster. The video below shows the making-of and setup.
Personally, I've always been very interested in the realization of supercomputers built with more than one processor; in the last two years the experiments for the creation of this kind of system – i.e. Cluster Computers – have multiplied thanks to the possibilities offered by the Raspberry Pi models. The first Cluster projects based on this platform were published shortly after the release of the second generation of Raspberry; given the rather limited computing power of the Pi 2 model, these were almost always academic experiments aimed at demonstrating how a group of small networked computers can considerably increase the computing power to perform repetitive or time-consuming tasks, especially when performed on single-board computers such as the Raspberry Pi.
The English term Cluster literally means "collection", but also "group". This word is used in very different fields, such as mathematics and statistics, where Cluster Analysis takes into account the behaviour of certain groups of entities in relation to each other. In the computer field, a Computer Cluster consists of a group of independent computers connected to each other through a network and controlled by a main server. These machines are identical or structurally very similar; each computer in the cluster - identified as a node - has its own operating system installation; the nodes in the cluster communicate quickly and efficiently with each other connected by a local network. In many ways, although they are different machines, the cluster can be seen as a single entity. Each node is configured so that it can perform the same tasks as the other nodes, while the main node (the cluster server) has a software able to establish the priority of execution of each task by distributing the pending tasks to the various nodes according to the availability of resources.
In this project I used four Raspberry Pi’s 4B to create a cluster of four nodes: the number of nodes depends on how many units we have available and the system is completely modular, able to be extended to an indefinite number of nodes; some universities have created clusters with hundreds of Raspberry Pi’s connected to the network. Of course, this also applies in the opposite direction: nothing prevents us from creating a cluster with only two or three nodes. It is obvious that the number of nodes can significantly affect the system performance, seen from the outside as a single entity, a small supercomputer. Despite the flexibility and modularity of the cluster, when it comes to designing the architecture there are some aspects you have to take into account. A complete project detail on how to make a cluster with the Pi 4B following my same path will be published soon outside of this review as it is a long but interesting procedure.
A detailed post on how I have set up the four nodes cluster based on the Raspberry Pi 4B can be found in PiCluster How-to on we-are-borg.com, a complete guide on how the four machines have been configured and what is the software components and network configuration used to build the nodes and connect them together.
Another post on how PiCluster architecture has been empowered with the SLURM Workload Manager to assemble automatically large amounts of time-lapse images to mp4 video scenes, on the PiCluster At Work blog post. Custom control software is available on GitHub repository.
Based on all the use I have experienced, including the stability of the system (the cloud is powered under UPS by 2 months and a half) In can conclude that it is my impression that the Pi 4B is a considerable step ahead. Having tested, experimented and developed many projects on almost all the models of the Pi from model 1 this is the first machine that can work very well as a desktop with the incredible potential of exposing the GPIO. Perfect for makers, developers and for educational purposes. My vote for this model is 10 under all the aspects.