SCIP x Raspberry Pi: SCIP on Edge
TL;DR: Running SCIP on a Raspberry Pi 4 with relatively moderate performance losses (compared to a standard machine) of a factor of 3-5 brings Integer Programming into the realm of Edge Computing.
Edge Computing is concerned with the deployment of compute and algorithms close to their actual location. Thinking about it for a few minutes one easily comes up with a lot of good reasons why one might want to do this. From Wikipedia:
Edge computing is a distributed computing paradigm which brings computation and data storage closer to the location where it is needed, to improve response times and save bandwidth.
For example, in the context of deep learning applications, there is great hardware out there to bring, e.g., deep learning applications to the edge and one example in this category are the NVidia Jetson TX kits.
For completely different but not unrelated reasons I have recently been thinking very much about the interplay of hardware and software and in particular, the potential of, e.g., FPGAs to realize customized functions in hardware to better support algorithms (and their implementations) that we care for: both for realizing a better energy footprint and closer to the edge deployment on the one end of the spectrum and for highest performance operations on the other end of the spectrum. To make things more tangible, e.g., a specialized FPGA for Integer Programming. Why? While we have great solutions to deploy, e.g., deep learning applications on the edge there is nothing there for deploying integer programming codes, i.e., discrete decision making on the edge. As such I was curious to get SCIP up and running on a Raspberry Pi 4 B (4GB RAM) board (RPi 4) which can be bought for $55, e.g., on Amazon. Tentative working title: SCIPberry—every Raspberry Pi project needs to have “berry” in its name.
(Polyhedral raspberry logo by SiRo126)
SCIP on Edge
So first let us have a look at all the required pieces.
The hardware
A Raspberry Pi 4 with 4GB of RAM. As Integer Programs can get large we need some memory and hence the 4GB version. The RPi 4 is really a tiny device that can easily fit into the palm of your hand. See this image from raspberrypi.org:
At a price point of about $55 you might think that this is not much more than a toy but the RPi 4 is suprisingly powerful; checkout the benchmarks. Moreover, you can actually run Julia, Mathematica, and python on it. Not bad for $55!
Interlude: As a feasibility study I have been running my day-to-day work on a RPi 4 for a few weeks now and it is refreshingly sufficient. Effectively almost all services that I use in my day-to-day operations are now cloud based, so that you can run them in a web browser and with Raspbian’s Chromium (the open source base of Chrome) you get quite far. Moreover, there is also Firefox available for Raspbian. Interestingly the user agent detection of Google Calendar forces Chromium to display Google Calendar in some weird mobile version, which made me look for Firefox in the first place.
Purely optional and your own risk: Spiked berrys
The Raspberry Pi is an extremely versatile and flexible device. In fact you can even overclock it easily by simply changing its startup configuration. How far you can go with this depends on how lucky you have been in the silicon lottery and I strongly recommend to first read this article about overclocking an RPi 4 and this one for how to push it to 2 GHz; your mileage may vary. Looks like I have been lucky in the silicon lottery as I pushed my RPi 4 to 2GHz without any issues and perfectly stable behavior, over multiple days and under full load of all four cores with varying workloads. Very important: you will need an active cooling case as otherwise you will run into thermal throttling, negating the effect of the overclocking. For example the Miuzei case with active cooling (link to Amazon Germany; same can be found on, e.g., Amazon US) for about 18 Euro (or around $20) works great. You can barely hear the fan, while keeping the RPi4 at a 69C under full load of all four cores, so rather far away from the thermal throttling point of 80C. Moreover, the power adapter provides enough juice to support the over voltage we have to provide. To see what overclocking buys you in terms of performance, you can check out the benchmarks at the end of the overclocking article. Short version is: it buys you somewhere between 3% - 33% in their tests and in our tests later we pretty much get the full 33%.
In /boot/config.txt
(you need to edit e.g., with sudo nano /boot/config.txt
), I use the following for overclocking in the [pi4]
section.
over_voltage=6
arm_freq=2000
gpu_freq=600
The over_voltage=6
setting for extra voltage is comprised of 3 times 2
each with 2
to go up to 1.750 GHz for the CPU, another 2
to go up to 2Ghz, and the final 2
for the GPU overclocking.
Note: This is at your own risk and I strongly suggest to read this article about overclocking RPi4 and this one for how to push it to 2 GHz to understand how to trouble shoot and fix if something goes wrong.
The software
On the software side, I went with the Raspbian Buster image from Raspberrypi.org. Then I did the usual package updates, installed cmake
with sudo apt-get install cmake
, and compiled the scip optimization suite. Compilation worked right out of the box thanks to cmake
and appropriate build files. Compile time on a stock RPi 4 is about 40 mins for the whole optimization suite:
real 41m38.569s
user 38m39.830s
sys 2m41.798s
A few notes on compilation etc
There seems to be a minor issue with the linux kernel reporting the wrong arm architecture which might lead to suboptimal compiler flags as determined by cmake
based on the reported architecture; this is due to the upstream linux kernel implementation. At the same time I did some preliminary tests and the compiler flags can have some substantial performance impact, in particular the configuration of the floating point unit (easily a factor of 2). We intend to make Raspberry Pi binaries of SCIP available relatively soon once we have tuned the compilation for the arm architecture. Meanwhile, you can simply compile SCIP from the sources with its out-of-the-box configuration which is stable but not yet arm architecture optimized. If some arm compilation expert, in particular w.r.t. floating point arithmetics, reads this please drop me a line!
Performance and benchmarks
I did two comparisons in term of performance. The first one is between a MacBook Pro and the RPi 4 on some standard MIPLIB instances and the second one is a full MIPLIB 2017 benchmark run.
Unscientific comparison
The comparison below is between a MacBook Pro (Core i7 3.5 GHz with 16GB RAM) vs. stock Raspberry Pi 4 vs. spiked Raspberry Pi 4 (running at 2 GHz for the CPU and 600 MHz for the GPU) for a few select instances from the MIPLIB 2017 running SCIP. As discussed above the Raspberry Pi 4 version of SCIP is not yet optimized for the ARM architecture (the stock and spiked version use -mcpu
and -mtune
flags for the Cortex A72 architecture though), so that there are likely more speed improvements to be gained. The table reports time in seconds as well as how many times the RPi 4 is slower than the MBP. While this is not a scientific or complete benchmark we get a pretty good idea. Effectively, we are talking about a 3-5 times multiple, which basically means that we are not changing categories: seconds remain seconds and minutes remain minutes, so that in actual applications there is not that much of a difference.
Also note that the numbers below are single core performance, however the RPi 4 is a quad core design, so that there might be additional speedups to be gained.
Instance | sec (MBP) | sec (stock) | x (stock) | sec (spiked) | x (spiked) |
---|---|---|---|---|---|
air05 | 34.64 | 184.32 | 5.32 | 143.21 | 4.13 |
beasleyC3 | 20.68 | 80.49 | 3.89 | 62.99 | 3.05 |
cbs-cta | 8.05 | 40.55 | 5.04 | 34.27 | 4.26 |
pk1 | 178.80 | 645.73 | 3.61 | 500.54 | 2.80 |
pg | 17.47 | 72.31 | 4.14 | 58.06 | 3.32 |
neos-1122047 | 3.81 | 12.78 | 3.35 | 10.83 | 2.84 |
timtab1 | 59.83 | 223.47 | 3.74 | 179.33 | 2.99 |
dano3_5 | 206.12 | 1275.86 | 6.19 | 1036.74 | 5.03 |
hypothyroid-k1 | 19.80 | 104.96 | 5.30 | 93.15 | 4.70 |
swath3 | 279.40 | 1185.95 | 4.24 | 1000.58 | 3.58 |
unitcal_7 | 381.70 | 1853.92 | 4.86 | 1489.52 | 3.90 |
CMS750_4 | 922.35 | 4346.98 | 4.71 | 3379.95 | 3.66 |
istanbul-no-cutoff | 98.07 | 501.13 | 5.11 | 408.17 | 4.16 |
MIPLIB 2017 benchmark run
The second test is a MIPLIB 2017 benchmark run - singe core run. Given that it took a couple of days to complete I only did the run for the spiked version.
----------------------------+----------------+----------------+------+---------+-------+--------+
Name | Dual Bound | Primal Bound | Gap% | Nodes | Time | Status |
----------------------------+----------------+----------------+------+---------+-------+--------+
30n20b8 302 302 0.0 122 1225 ok
50v-10 3246.37511 3313.17999 2.1 79593 3601 stopped
academictimetablesmall 7.10542736e-15 1e+20 -- 250 3601 stopped
air05 26374 26374 0.0 418 144 ok
app1-1 -3 -3 0.0 3 27 ok
app1-2 -41 -41 0.0 24 2473 ok
assign1-5-8 199.527686 212 6.3 1096572 3601 stopped
atlanta-ip 83.0314859 91.0099752 9.6 533 3601 stopped
b1c1s1 21152.5997 25486.73 20.5 2475 3600 stopped
bab2 -358777.078 1e+20 -- 1 3607 stopped
bab6 -288604.802 1e+20 -- 1 3605 stopped
beasleyC3 754 754 0.0 6 64 ok
binkar10_1 6742.20002 6742.20002 0.0 3092 192 ok
blp-ar98 6168.05653 6457.70502 4.7 7103 3601 stopped
blp-ic98 4440.63685 4720.2617 6.3 15310 3602 stopped
bnatt400 1 1 0.0 5709 1218 ok
bnatt500 1e+20 1e+20 -- 20612 2854 ok
bppc4-08 52 54 3.8 114635 3602 stopped
brazil3 24 1e+20 -- 152 3600 stopped
buildingenergy 33246.2151 42652.3398 28.3 1 3606 stopped
cbs-cta 0 0 0.0 1 35 ok
chromaticindex1024-7 3 4 33.3 1 3730 stopped
chromaticindex512-7 3 4 33.3 44 3602 stopped
cmflsp50-24-8-8 54860290.3 1e+20 -- 4184 3601 stopped
CMS750_4 252 252 0.0 14526 3290 ok
co-100 1936126.27 10724685.1 453.9 1 3605 stopped
cod105 -18.2857143 -12 52.4 65 3601 stopped
comp07-2idx 6 823 Large 5 3601 stopped
comp21-2idx 41.0023016 295 619.5 129 3600 stopped
cost266-UUE 23987103.2 25148940.6 4.8 67004 3601 stopped
cryptanalysiskb128n5obj14 0 1e+20 -- 1 3602 stopped
cryptanalysiskb128n5obj16 0 1e+20 -- 1 3602 stopped
csched007 326.692847 353 8.1 89932 3601 stopped
csched008 171.342524 173 1.0 91573 3600 stopped
cvs16r128-89 -120.632745 -93 29.7 727 3601 stopped
dano3_3 576.344633 576.344633 0.0 19 587 ok
dano3_5 576.924916 576.924916 0.0 60 1011 ok
decomp2 -160 -160 0.0 1 13 ok
drayage-100-23 103333.874 103333.874 0.0 39 61 ok
drayage-25-23 101208.076 101282.647 0.1 93492 3600 stopped
dws008-01 20712.5472 59272.7628 186.2 7329 3600 stopped
eil33-2 934.007916 934.007916 0.0 717 337 ok
eilA101-2 805.920228 1240.02356 53.9 303 3604 stopped
enlight_hard 37 37 0.0 1 1 ok
ex10 100 100 0.0 1 2338 ok
ex9 81 81 0.0 1 158 ok
exp-1-500-5-5 65887 65887 0.0 1 9 ok
fast0507 174 174 0.0 528 571 ok
fastxgemm-n2r6s0t2 29 230 693.1 144518 3601 stopped
fhnw-binpack4-4 0 1e+20 -- 2772713 3600 stopped
fhnw-binpack4-48 0 1e+20 -- 461981 3600 stopped
fiball 138 140 1.4 10323 3601 stopped
gen-ip002 -4796.88522 -4783.73339 0.3 4003765 3603 stopped
gen-ip054 6803.0169 6840.96564 0.6 4873762 3606 stopped
germanrr 46795848.8 48328053.1 3.3 167 3601 stopped
gfd-schedulen180f7d50m30k18 1 1e+20 -- 1 3607 stopped
glass-sc 19.2345968 23 19.6 40518 3601 stopped
glass4 900005372 1.600014e+09 77.8 595600 3601 stopped
gmu-35-40 -2406903.88 -2406207.39 0.0 476087 3604 stopped
gmu-35-50 -2608070.29 -2607011 0.0 264255 3606 stopped
graph20-20-1rand -24.9879502 -9 177.6 605 3600 stopped
graphdraw-domain 17998.5455 19686 9.4 1549875 3601 stopped
h80x6320d 6382.09905 6382.09905 0.0 4 596 ok
highschool1-aigio 0 1e+20 -- 1 3607 stopped
hypothyroid-k1 -2851 -2851 0.0 1 94 ok
ic97_potential 3887 3948 1.6 1053664 3601 stopped
icir97_tension 6362 6386 0.4 370916 3601 stopped
irish-electricity 2934051.39 1e+20 -- 1 3602 stopped
irp 12159.4928 12159.4928 0.0 7 74 ok
istanbul-no-cutoff 204.081749 204.081749 0.0 229 396 ok
k1mushroom -1e+20 1e+20 -- 0 3618 stopped
lectsched-5-obj 15 47 213.3 4287 3601 stopped
leo1 400019518 410793643 2.7 17966 3601 stopped
leo2 393957837 418226155 6.2 6883 3601 stopped
lotsize 1466743.39 1514999 3.3 623 3601 stopped
mad 4.23272528e-15 0.028 -- 1758648 3602 stopped
map10 -522.229315 -495 5.5 1221 3604 stopped
map16715-04 -202.53321 -83 144.0 265 3605 stopped
markshare_4_0 1 1 0.0 2552263 864 ok
markshare2 0 17 -- 1942425 3604 stopped
mas74 11405.2315 11801.1857 3.5 2857955 3602 stopped
mas76 40005.0541 40005.0541 0.0 269818 444 ok
mc11 11689 11689 0.0 2247 372 ok
mcsched 211913 211913 0.0 11189 755 ok
mik-250-20-75-4 -52301 -52301 0.0 28546 189 ok
milo-v12-6-r2-40-1 277158.347 326481.143 17.8 11372 3601 stopped
momentum1 96365.4136 128477.452 33.3 4759 3600 stopped
mushroom-best 0.0174384818 0.0553337612 217.3 6318 3600 stopped
mzzv11 -21718 -21718 0.0 2233 1477 ok
mzzv42z -20540 -20540 0.0 261 621 ok
n2seq36q 52200 52200 0.0 2740 3431 ok
n3div36 125388.755 131000 4.5 12248 3603 stopped
n5-3 8105 8105 0.0 607 98 ok
neos-1122047 161 161 0.0 1 23 ok
neos-1171448 -309 -308 0.3 61 3601 stopped
neos-1171737 -195 -191 2.1 234 3600 stopped
neos-1354092 36 1e+20 -- 3 3601 stopped
neos-1445765 -17783 -17783 0.0 75 214 ok
neos-1456979 157.283966 204 29.7 3148 3601 stopped
neos-1582420 91 91 0.0 252 94 ok
neos-2075418-temuka 0 1e+20 -- 1 3614 stopped
neos-2657525-crna 0 1.810748 -- 715693 3602 stopped
neos-2746589-doon 1993.43007 1e+20 -- 881 3602 stopped
neos-2978193-inde -2.4017989 -2.38806169 0.6 38669 3600 stopped
neos-2987310-joes -607702988 -607702988 0.0 1 72 ok
neos-3004026-krka 0 0 0.0 2020 245 ok
neos-3024952-loue 26756 26756 0.0 56581 3459 ok
neos-3046615-murg 538.135067 1610 199.2 1551986 3606 stopped
neos-3083819-nubu 6307996 6307996 0.0 1138 47 ok
neos-3216931-puriri 59191.1268 1e+20 -- 202 3601 stopped
neos-3381206-awhea 453 453 0.0 1 4 ok
neos-3402294-bobin 1.11022302e-16 0.06725 -- 2765 3606 stopped
neos-3402454-bohle -1e+20 1e+20 -- 0 43 stopped
neos-3555904-turama -40.95 -33.2 23.3 3 3604 stopped
neos-3627168-kasai 988203.134 988585.62 0.0 462893 3600 stopped
neos-3656078-kumeu -18413.2 1e+20 -- 1 3601 stopped
neos-3754480-nidda -352051.784 13747.5367 -- 1952395 3602 stopped
neos-3988577-wolgan 119 1e+20 -- 13 3601 stopped
neos-4300652-rahue 0.128756061 5.2121 3948.0 103 3606 stopped
neos-4338804-snowy 1447 1477 2.1 554130 3601 stopped
neos-4387871-tavua 28.8473171 34.79894 20.6 1310 3600 stopped
neos-4413714-turia 45.370167 45.370167 0.0 2 2082 ok
neos-4532248-waihi 0.370420217 1e+20 -- 1 3616 stopped
neos-4647030-tutaki 27265.1927 27271.257 0.0 231 3609 stopped
neos-4722843-widden 25009.6634 25009.6634 0.0 2623 3368 ok
neos-4738912-atrato 283627957 283627957 0.0 46900 2055 ok
neos-4763324-toguru 1142.84659 2240.0651 96.0 2 3604 stopped
neos-4954672-berkel 2308705.23 2633312 14.1 94247 3601 stopped
neos-5049753-cuanza 550.216667 1e+20 -- 1 3607 stopped
neos-5052403-cygnet 179.500371 290 61.6 1 3609 stopped
neos-5093327-huahum 5192.21511 6506 25.3 2403 3602 stopped
neos-5104907-jarama 642.256923 1e+20 -- 1 3609 stopped
neos-5107597-kakapo 1864.20375 3690 97.9 171822 3600 stopped
neos-5114902-kasavu -1e+20 1e+20 -- 0 26 stopped
neos-5188808-nattai 0 0.110287132 -- 6443 3601 stopped
neos-5195221-niemur 0.000977767 0.003863653 295.2 14256 3602 stopped
neos-631710 0 215 -- 1 3606 stopped
neos-662469 184368.162 184544.5 0.1 4717 3600 stopped
neos-787933 30 30 0.0 1 7 ok
neos-827175 112.00152 112.00152 0.0 1 107 ok
neos-848589 2302.61937 2528.6184 9.8 3 3612 stopped
neos-860300 3201 3201 0.0 2 67 ok
neos-873061 105.645552 121.460195 15.0 1 3604 stopped
neos-911970 54.76 54.76 0.0 455585 2952 ok
neos-933966 318 4398 1283.0 8 3601 stopped
neos-950242 1.22222222 4 227.3 194 3600 stopped
neos-957323 -237.756681 -237.756681 0.0 1 295 ok
neos-960392 -238 0 -- 13 3601 stopped
neos17 0.150002577 0.150002577 0.0 19658 115 ok
neos5 15 15 0.0 1812079 1944 ok
neos8 -3719 -3719 0.0 1 9 ok
neos859080 1e+20 1e+20 -- 661 2 ok
net12 214 214 0.0 1334 3292 ok
netdiversion 237.111111 242 2.1 12 3604 stopped
nexp-150-20-8-5 230.447378 235 2.0 16 3601 stopped
ns1116954 0 1e+20 -- 1 3602 stopped
ns1208400 2 2 0.0 990 723 ok
ns1644855 -1524.33333 -1419.66667 7.4 1 3605 stopped
ns1760995 -1e+20 1e+20 -- 0 3662 stopped
ns1830653 20622 20622 0.0 6176 434 ok
ns1952667 0 0 0.0 1382 1164 ok
nu25-pr12 53905 53905 0.0 83 22 ok
nursesched-medium-hint03 75.8661003 8081 Large 1 3602 stopped
nursesched-sprint02 58 58 0.0 6 155 ok
nw04 16862 16862 0.0 7 105 ok
opm2-z10-s4 -45884.456 -29300 56.6 3 3602 stopped
p200x1188c 15078 15078 0.0 2 12 ok
peg-solitaire-a3 1 1e+20 -- 184 3600 stopped
pg -8674.34261 -8674.34261 0.0 559 59 ok
pg5_34 -14350.2009 -14338.0615 0.1 171265 3600 stopped
physiciansched3-3 2609077.71 1e+20 -- 6 3604 stopped
physiciansched6-2 49324 49324 0.0 142 727 ok
piperout-08 125055 125055 0.0 110 2050 ok
piperout-27 8124 8124 0.0 2 612 ok
pk1 11 11 0.0 406826 535 ok
proteindesign121hz512p9 0 1e+20 -- 0 920 stopped
proteindesign122trx11p8 -1e+20 1e+20 -- 0 1076 abort
qap10 340 340 0.0 2 361 ok
radiationm18-12-05 17565 17576 0.1 58171 3601 stopped
radiationm40-10-02 155321.712 256218 65.0 1127 3604 stopped
rail01 -92.0873 1e+20 -- 1 3603 stopped
rail02 -6350.94197 1e+20 -- 1 3605 stopped
rail507 174 174 0.0 682 796 ok
ran14x18-disj-8 3650.00897 3734.99999 2.3 264526 3601 stopped
rd-rplusc-21 100 171887.288 Large 24296 3603 stopped
reblock115 -36934261.8 -36800603.2 0.4 104186 3601 stopped
rmatr100-p10 423 423 0.0 777 689 ok
rmatr200-p5 3291.08079 4706 43.0 1 3602 stopped
rocI-4-11 -6020203 -6020203 0.0 11774 387 ok
rocII-5-11 -11.811922 -5.65497492 108.9 4983 3601 stopped
rococoB10-011000 16178.1679 20170 24.7 10307 3600 stopped
rococoC10-001000 11460 11460 0.0 49162 2307 ok
roi2alpha3n4 -69.497701 -63.2084921 9.9 5167 3603 stopped
roi5alpha10n8 -72.6816859 -42.3653204 71.6 314 3609 stopped
roll3000 12890 12890 0.0 3147 181 ok
s100 -1e+20 1e+20 -- 0 101 stopped
s250r10 -0.172620061 -0.1717256 0.5 2 3609 stopped
satellites2-40 -29 49 -- 1 3653 stopped
satellites2-60-fs -29 28 -- 1 3628 stopped
savsched1 -801160.3 31846.3 -- 1 3614 stopped
sct2 -231.063567 -230.989162 0.0 90160 3600 stopped
seymour 417.932149 423 1.2 25264 3601 stopped
seymour1 410.763701 410.763701 0.0 1203 309 ok
sing326 7740242.84 7815051.11 1.0 106 3602 stopped
sing44 8110365.4 8336047.42 2.8 36 3602 stopped
snp-02-004-104 586784451 586903510 0.0 104 3607 stopped
sorrell3 -20.6893407 -12 72.4 1 3603 stopped
sp150x300d 69 69 0.0 121 2 ok
sp97ar 657199509 691953855 5.3 3591 3601 stopped
sp98ar 528030041 530117051 0.4 6957 3601 stopped
splice1k1 -1645.76473 -121 1260.1 1 3618 stopped
square41 8.87035973 51 474.9 3 3627 stopped
square47 -1e+20 1e+20 -- 0 81 stopped
supportcase10 0 18 -- 1 3603 stopped
supportcase12 -82461.0638 0 -- 1 34 stopped
supportcase18 47.1866667 50 6.0 9632 3600 stopped
supportcase19 -1e+20 1e+20 -- 0 29 stopped
supportcase22 0 1e+20 -- 2 3606 stopped
supportcase26 1521.82348 1755.84518 15.4 843082 3602 stopped
supportcase33 -359.701149 -340 5.8 6947 3602 stopped
supportcase40 23849.6271 24422.9041 2.4 7365 3600 stopped
supportcase42 7.75103344 8.02972774 3.6 35452 3602 stopped
supportcase6 45997.8089 51937.682 12.9 127 3605 stopped
supportcase7 -1132.22317 -1132.22317 0.0 159 739 ok
swath1 379.071296 379.071296 0.0 362 65 ok
swath3 397.761344 397.761344 0.0 39302 966 ok
tbfp-network 23.3340112 28.1166667 20.5 33 3646 stopped
thor50dday 32001.5993 58369 82.4 1 3604 stopped
timtab1 764772 764772 0.0 43393 182 ok
tr12-30 130529.549 130596 0.1 568241 3601 stopped
traininstance2 0 79160 -- 2970 3601 stopped
traininstance6 2072 29130 1305.9 17661 3600 stopped
trento1 5183779.47 5534271 6.8 2305 3601 stopped
triptim1 22.8680875 22.8681 0.0 2 3601 stopped
uccase12 11507.3721 11507.4051 0.0 1866 3603 stopped
uccase9 10881.1167 11691.6074 7.4 65 3602 stopped
uct-subprob 300.483452 314 4.5 30374 3600 stopped
unitcal_7 19635558.2 19635558.2 0.0 374 1448 ok
var-smallemery-m6j6 -152.559657 -149.375 2.1 45835 3602 stopped
wachplan -9 -8 12.5 67432 3600 stopped
----------------------------+----------------+----------------+------+---------+-------+--------+
solved/stopped/failed: 79/161/0
@03 MIPLIB script version
@02 timelimit: 3600
@01 SCIP(6.0.2)spx(4.0.2)
Nerd corner: additional RPi 4 benchmarks
For the curious and for comparison to the stock model, I also ran the RPi Benchmark script and a Linpack benchmark on the spiked RPi4.
RPi Benchmark
Raspberry Pi Benchmark Test
Author: AikonCWD
Version: 3.0
temp=46.0'C
arm_freq=2000
gpu_freq=600
gpu_freq_min=500
sd_clock=50.000 MHz
Running InternetSpeed test...
Ping: 12.172 ms
Download: 31.11 Mbit/s
Upload: 3.76 Mbit/s
Running CPU test...
total time: 6.5163s
min: 2.53ms
avg: 2.61ms
max: 12.92ms
temp=58.0'C
Running THREADS test...
total time: 11.2985s
min: 4.02ms
avg: 4.52ms
max: 42.92ms
temp=62.0'C
Running MEMORY test...
Operations performed: 3145728 (1930915.11 ops/sec)
3072.00 MB transferred (1885.66 MB/sec)
total time: 1.6291s
min: 0.00ms
avg: 0.00ms
max: 11.62ms
temp=63.0'C
Running HDPARM test...
Timing buffered disk reads: 130 MB in 3.01 seconds = 43.19 MB/sec
temp=51.0'C
Running DD WRITE test...
536870912 bytes (537 MB, 512 MiB) copied, 13.9169 s, 38.6 MB/s
temp=48.0'C
Running DD READ test...
536870912 bytes (537 MB, 512 MiB) copied, 11.9338 s, 45.0 MB/s
temp=48.0'C
AikonCWD's rpi-benchmark completed!
Linpack benchmark
28 September 2019 01:57:50 AM
LINPACK_BENCH
C version
The LINPACK benchmark.
Language: C
Datatype: Double precision real
Matrix order N = 1000
Leading matrix dimension LDA = 1001
Norm. Resid Resid MACHEP X[1] X[N]
6.491510 0.000000 2.220446e-16 1.000000 1.000000
Factor Solve Total MFLOPS Unit Cray-Ratio
2.530031 0.002854 2.532885 263.994088 0.007576 45.230089
LINPACK_BENCH
Normal end of execution.
28 September 2019 01:57:53 AM