{"id":740,"date":"2017-06-14T10:42:36","date_gmt":"2017-06-14T10:42:36","guid":{"rendered":"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=740"},"modified":"2017-06-23T09:57:20","modified_gmt":"2017-06-23T09:57:20","slug":"raspberrypi-zerow-test-mathematicy","status":"publish","type":"post","link":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=740","title":{"rendered":"RaspberryPi ZeroW &#8211; test Mathematicy"},"content":{"rendered":"<p>Wraz z czerwcowym numerem <a href=\"https:\/\/www.raspberrypi.org\/magpi\/\">The MagPi Magazine<\/a>&nbsp;prenumeratorzy wersji papierowej otrzymali komputer <a href=\"https:\/\/www.raspberrypi.org\/products\/pi-zero-w\/\">RaspberryPi Zero W<\/a>, plus obudowa (z trzema pokrywkami) oraz niezb\u0119dne przej\u015bci\u00f3wki (USB, HDMI). Jest to najmniejszy komputer z rodziny Malinek &#8211; cechuje go bardzo kompaktowy rozmiar. Wydzia\u0142 Fizyki jako prenumerator tego magazynu otrzyma\u0142 sw\u00f3j egzemplarz, a ja przyjrza\u0142em si\u0119 wydajno\u015bci tej maszynki w znanym programie Wolfram Mathematica &#8211; bezp\u0142atnego (pod sporymi restrykcjami) na Malinki.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-742\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3252.jpg\" alt=\"\" width=\"1800\" height=\"1013\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3252.jpg 1800w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3252-300x169.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3252-768x432.jpg 768w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3252-1024x576.jpg 1024w\" sizes=\"auto, (max-width: 1800px) 100vw, 1800px\" \/><\/p>\n<h2>Parametry<\/h2>\n<p>Wymaga wymieni\u0107 podstawow\u0105 konfiguracj\u0119 \u015bwiadcz\u0105c\u0105 o szybko\u015bci, wi\u0119c:<\/p>\n<ul>\n<li>1GHz, <strong>jednordzeniowy<\/strong> CPU,<\/li>\n<li><strong>512<\/strong>MB RAM.<\/li>\n<\/ul>\n<p>Je\u015bli chodzi o dodatkowe rzeczy, to:<\/p>\n<ul>\n<li><strong>Mini HDMI<\/strong> and USB On-The-Go ports<\/li>\n<li>Micro USB power<\/li>\n<li>HAT-compatible 40-pin header<\/li>\n<li>Composite video and reset headers<\/li>\n<li>CSI camera connector<\/li>\n<li>802.11 b\/g\/n <strong>wireless LAN<\/strong><\/li>\n<li><strong>Bluetooth 4.1<\/strong><\/li>\n<li><strong>Bluetooth Low Energy<\/strong> (BLE).<\/li>\n<\/ul>\n<p>Z rozmiaru pami\u0119ci wida\u0107, \u017ce sza\u0142u nie b\u0119dzie. Ale skoro jest to maszynka edukacyjna, z oprogramowaniem Mathematicy (w wersji na Rasbiana) to dlaczego by nie sprawdzi\u0107? Dla podkre\u015blenia, wersja druga Maliny wyposa\u017cona jest w <strong>czterordzeniowy<\/strong> procek taktowany 900MHz, no i RAMu ma dwa razy wi\u0119cej &#8211; 1GB. Sprawdza\u0142em wielokrotnie, \u017ce da si\u0119 pracowa\u0107 na Mathematicy &nbsp;w zadawalaj\u0105cy spos\u00f3b. A tutaj jak b\u0119dzie?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-743\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3254.jpg\" alt=\"\" width=\"1800\" height=\"1013\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3254.jpg 1800w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3254-300x169.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3254-768x432.jpg 768w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3254-1024x576.jpg 1024w\" sizes=\"auto, (max-width: 1800px) 100vw, 1800px\" \/><\/p>\n<p>Powy\u017cej zdj\u0119cie por\u00f3wnuj\u0105ce &#8222;gabaryty&#8221; nowej Malinki (po prawej stronie) do wersji Pi2B (lewa strina). Wida\u0107 wyra\u017anie, \u017ce trzeba by\u0107 przygotowany na jaki\u015b hub z portami USB, bo inaczej nie pod\u0142\u0105czymy klawiatury+myszki &#8211; jest tylko jeden port USB (drugi, widoczny na zdj\u0119ciu &#8211; to port zasilania). Wi\u0119c trzeba mie\u0107 klawiatur\u0119 zintegrowan\u0105 z myszk\u0105, albo hub-a. Przy okazji &#8211; piny GPIO nie s\u0105 przylutowane, nale\u017cy&nbsp;samodzielnie to zrobi\u0107.<\/p>\n<p>Upgrade systemu na Pi 2 Model B i prze\u0142o\u017cenie karty z systemem i&#8230; ZeroW wystartowa\u0142 bez problem\u00f3w (m\u00f3wie o Rasbianie). P\u00f3\u017aniej w domu sprawdzi\u0142em, \u017ce taki upgrade i sie\u0107 wi-fi uruchomi\u0142 bezproblemowo.<\/p>\n<h2>Uruchomienie &#8211;&nbsp;ci\u0119\u017cki start<\/h2>\n<p>A nawet gorzej &#8211; nie da si\u0119 pracowa\u0107 na Mathematicy. Samo uruchomienie to <strong>czekanie ponad 2 minuty<\/strong>&nbsp;&#8211; a system straci\u0142 responsywno\u015b\u0107. &nbsp;Zagl\u0105dam na zu\u017cycie pami\u0119ci i widz\u0119, \u017ce \u015brodowisko X-\u00f3w z uruchomoion\u0105 Mathematic\u0105 po\u017car\u0142o 450 MB RAMu. Jeste\u015bmy na granicy&#8230; Co si\u0119 dzieje dalej?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-745\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-kolor-1.jpg\" alt=\"\" width=\"1801\" height=\"465\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-kolor-1.jpg 1801w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-kolor-1-300x77.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-kolor-1-768x198.jpg 768w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-kolor-1-1024x264.jpg 1024w\" sizes=\"auto, (max-width: 1801px) 100vw, 1801px\" \/><\/p>\n<h2>Praca z Mathematic\u0105 &#8211;&nbsp;sza\u0142u nie ma<\/h2>\n<p>Nie ma si\u0119 co oszukiwa\u0107 &#8211; 512MB to zdecydowanie za ma\u0142o na dzia\u0142anie Mathematicy. Poni\u017cej przedstawiam wyniki kilku test\u00f3w szybko\u015bciowych &#8211; generowanie fraktala Mandelbrota (prosta metoda, r\u00f3\u017cne siatki jak te\u017c i dwa kryteria zbie\u017cno\u015bci, r\u00f3\u017cni\u0105ce si\u0119 dwukrotnie progiem liczby iteracji &#8211; na ko\u0144cu znajduj\u0105 si\u0119 dok\u0142adne procedury testuj\u0105ce). Por\u00f3wnuj\u0119 czasy do Pi2 Model B &#8211; uruchomionego z tej samej karty (i do biurkowego Intela i7-4790K CPU @ 4.00GHz, 32GB RAM pod kontrol\u0105 Ubuntu 16.04).<\/p>\n<table>\n<tbody>\n<tr>\n<td>&nbsp;<\/td>\n<td>mandel-1<\/td>\n<td>export<\/td>\n<td>mandel-2<\/td>\n<td>mandel-3<\/td>\n<td>kolor<\/td>\n<\/tr>\n<tr>\n<td>Intel i7<\/td>\n<td>0.84 s<\/td>\n<td>1.2 s<\/td>\n<td>0.9 s<\/td>\n<td>1.4 s<\/td>\n<td>0.2 s<\/td>\n<\/tr>\n<tr>\n<td>RPi2<\/td>\n<td>28.5 s<\/td>\n<td>24.5 s<\/td>\n<td>12 s<\/td>\n<td>49 s<\/td>\n<td>7.5 s<\/td>\n<\/tr>\n<tr>\n<td>*RPi3<\/td>\n<td>15.6 s<\/td>\n<td>13.0 s<\/td>\n<td>?<\/td>\n<td>27 s<\/td>\n<td>4.6 s<\/td>\n<\/tr>\n<tr>\n<td>ZeroW<\/td>\n<td>96 s<\/td>\n<td>86 s<\/td>\n<td>40 s<\/td>\n<td>164 s<\/td>\n<td>600 s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Wyniki w tabelce to wynik polece\u0144 Timing[] Mathematicy i nie oddaj\u0105 dok\u0142adnie tego, co si\u0119 dzieje z systemem. A dzieje si\u0119 du\u017co &#8211; jak ju\u017c wspomnia\u0142em, na RPi Zero wyst\u0119puje&nbsp;<strong>utrata responsywno\u015bci<\/strong>, czyli mo\u017cliwo\u015bci pracy (system zachowuje si\u0119 jakby si\u0119 &#8222;zawiesi\u0142&#8221; &#8211; okna si\u0119 nie od\u015bwie\u017caj\u0105, polecenia si\u0119 nie wykonuj\u0105, menu si\u0119 nie rozwijaj\u0105). To oznacza <strong>ca\u0142kowit\u0105 kl\u0119sk\u0119<\/strong> w obs\u0142udze programu Mathematicy &#8211; co by\u0142o do przewidzenia ze wzgl\u0119du na wielko\u015b\u0107 pami\u0119ci RAM tego modelu. Zreszt\u0105 &#8211; w domu mam RPi w pierwszej wersji, tak\u017ce z 512MB ramu i tam jedyne co mo\u017cna &#8211; to uruchomi\u0107 Mathematic\u0119, nic konkretnego nie da si\u0119 zrobi\u0107 (OK &#8211; poza wykresem prostej funkcji).<\/p>\n<p>Z kolei wersja druga Maliny dzia\u0142a ju\u017c jak najbardziej przyzwoicie &#8211; nawet, gdy program zaj\u0119ty jest obliczeniami, ci\u0105gle mo\u017cemy dzia\u0142a\u0107 (wiadomo &#8211; wi\u0119cej pami\u0119ci i cztery rdzenie CPU, podczas gdy moje testy anga\u017cuj\u0105 tylko jeden rdze\u0144).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-744\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3250.jpg\" alt=\"\" width=\"1008\" height=\"1800\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3250.jpg 1008w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3250-168x300.jpg 168w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3250-768x1371.jpg 768w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/DSC_3250-573x1024.jpg 573w\" sizes=\"auto, (max-width: 1008px) 100vw, 1008px\" \/><\/p>\n<h2>Podsumowuj\u0105c<\/h2>\n<p>RPi Zero W &#8211; bardzo fajne urz\u0105dzenie, <strong>ale nie do Mathematicy<\/strong>. Zdecydowanie odradzam wydatek oko\u0142o 50 z\u0142 na t\u0105 maszynk\u0119 w celu wykorzystania jej do rozwi\u0105zywania zada\u0144 domowych z pomoc\u0105 programu Wolframa. <strong>Inne zastosowania<\/strong>&nbsp;(elektronika, IoT) &#8211; jak najbardziej TAK, zar\u00f3wno mocy obliczeniowej jak i RAMu jest wystarczaj\u0105co. Tym bardziej, \u017ce p\u0142ytka ma ju\u017c zintegrowan\u0105 kart\u0119 Wi-Fi (oraz Bluetooth, cho\u0107 tego jeszcze nie sprawdzi\u0142em).&nbsp;<\/p>\n<h2>Wyja\u015bnienie<\/h2>\n<p>Artyku\u0142 powsta\u0142 z powodu rozmowy ze studentami, kt\u00f3rych ucz\u0119 Mathematicy a kt\u00f3rzy mnie dopytywali o nowy, tani model RPi Zero.<\/p>\n<h2>Testy<\/h2>\n<h3>Funkcja dla Mandelbrota<\/h3>\n<pre class=\"lang:default decode:true\" title=\"funkcja tworzaca fraktala\">mandelbrot[p_, max_] := \r\n Module[{zn = p, i = 0}, \r\n  While[(i &lt; max) &amp;&amp; (Abs[zn] &lt; 2), zn = zn^2 + p; i++]; Abs[zn] &lt; 2]\r\n\r\nmandelbrot[0, 100]\r\n\r\nTrue\r\n\r\nmandelbrot[I, 100]\r\n\r\nTrue\r\n\r\nmandelbrot[I + 0.1, 100]\r\n\r\nFalse\r\n\r\nTiming[mandelbrot[I + 0.1, 10000]]\r\n\r\n{0., False}<\/pre>\n<h3>Test 1<\/h3>\n<pre class=\"lang:default decode:true \" title=\"test 1\">Timing[\r\n minx = -2;\r\n maxx = 2;\r\n dx = (maxx - minx)\/200.;\r\n miny = -2;\r\n maxy = 2;\r\n dy = (maxy - miny)\/200.;\r\n r = Show[\r\n   Graphics[{\r\n     Black,\r\n     Table[\r\n      If[mandelbrot[x + I*y, 100], \r\n       Rectangle[{x - dx\/2, y - dy\/2}, {x + dx\/2, y + dy\/2}]], {x, \r\n       minx, maxx, dx}, {y, miny, maxy, dy}]\r\n     }\r\n    ],\r\n   Frame -&gt; True,\r\n   PlotRange -&gt; {{minx, maxx}, {miny, maxy}}]\r\n ]<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-749\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel.jpg\" alt=\"\" width=\"288\" height=\"292\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel.jpg 1500w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-296x300.jpg 296w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-768x777.jpg 768w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/06\/mandel-1012x1024.jpg 1012w\" sizes=\"auto, (max-width: 288px) 100vw, 288px\" \/><\/p>\n<h3>Test 2<\/h3>\n<pre class=\"lang:default decode:true \" title=\"test2 - eksport do pliku\">Timing[\r\n Export[\"mandel.jpg\", r, ImageResolution -&gt; 300]\r\n ]<\/pre>\n<h3>Test 3<\/h3>\n<pre class=\"lang:default decode:true\" title=\"test 3 \">Timing[\r\n minx = -1.45;\r\n maxx = -1.2;\r\n dx = (maxx - minx)\/100.;\r\n miny = -0.1;\r\n maxy = 0.1;\r\n dy = (maxy - miny)\/100.;\r\n Show[\r\n Graphics[{\r\n Black,\r\n Table[\r\n If[mandelbrot[x + I*y, 200], \r\n Rectangle[{x - dx\/2, y - dy\/2}, {x + dx\/2, y + dy\/2}]], {x, \r\n minx, maxx, dx}, {y, miny, maxy, dy}]\r\n }\r\n ],\r\n Frame -&gt; True,\r\n PlotRange -&gt; {{minx, maxx}, {miny, maxy}}]\r\n ]<\/pre>\n<h3>Test 4- kolorowy<\/h3>\n<pre class=\"lang:default decode:true \" title=\"test 4 - kolorowy\">kolormandelbrot2 = Compile[{{p, _Complex}, {max, _Integer}},\r\n  Module[{zn = p, i = 0}, \r\n   While[(i &lt; max) &amp;&amp; (Abs[zn] &lt; 2), zn = zn^2 + p; i++]; i]\r\n  ]\r\n\r\n\r\nminx = -1.42;\r\nmaxx = -1.415;\r\ndx = (maxx - minx)\/200.;\r\nminy = -0.01;\r\nmaxy = 0.01;\r\ndy = (maxy - miny)\/200.;\r\nTiming[\r\n Show[\r\n  Graphics[{\r\n    Table[{\r\n      Hue[-0.7*kolormandelbrot2[x + I*y, 200]\/200. + 0.7],\r\n      Rectangle[{x - dx\/2, y - dy\/2}, {x + dx\/2, y + dy\/2}]}\r\n     , {x, minx, maxx, dx}, {y, miny, maxy, dy}]\r\n    }\r\n   ],\r\n  Frame -&gt; True,\r\n  PlotRange -&gt; {{minx, maxx}, {miny, maxy}}]\r\n ]<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wraz z czerwcowym numerem The MagPi Magazine&nbsp;prenumeratorzy wersji papierowej otrzymali komputer RaspberryPi Zero W, plus obudowa (z trzema pokrywkami) oraz niezb\u0119dne przej\u015bci\u00f3wki (USB, HDMI). Jest to najmniejszy komputer z rodziny Malinek &#8211; cechuje go bardzo kompaktowy rozmiar. Wydzia\u0142 Fizyki jako prenumerator tego magazynu otrzyma\u0142 sw\u00f3j egzemplarz, a ja przyjrza\u0142em si\u0119 wydajno\u015bci tej maszynki w znanym [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":741,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[54],"tags":[165,163,55,166,164],"class_list":{"0":"post-740","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-news","8":"tag-mathematica","9":"tag-pi","10":"tag-raspberry","11":"tag-wolfram","12":"tag-zero","14":"post-with-thumbnail","15":"post-with-thumbnail-large"},"_links":{"self":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=740"}],"version-history":[{"count":6,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/740\/revisions"}],"predecessor-version":[{"id":781,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/740\/revisions\/781"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/media\/741"}],"wp:attachment":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}