MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.
Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).
Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Organizace Apache Software Foundation (ASF) vydala verzi 22 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
nedavno jsem resil, ze bysme si mohli poridit prekladac od intelu a jelikoz se pravidelne opakuje, ze gcc je mizerne optimalizuji prekladac, a ze intel je s vyvojem nekde uplne jinde. (prece jen ma tu vyhodu, ze vi naprosto presne, jak ti mravenci v tech procesorech opravdu pobihaji)
a kdyz jsem zjistil, ze icc by mel podporovat automatickou paralelizaci vypoctu, zacalo to pro me byt jeste lakavejsi sousto. udelal jsem si proto par testu na svych ,,obsesivnich'' prikladech s fibonaccihy cisly.
kod jsem pouzil nasledujici (je napsany schvalne tak divne, ale o tom pozdeji, jestli vas to bude zajimat)int fib0(int i) { if (i <= 2) return 1; return fib0(i - 1) + fib0(i - 2); } int fib(int i) { int result; result = fib0(i); return result; } int main() { int i, j; int blah[10]; for (i = 0; i < 10; i++) blah[i] = fib(32 + i); for (i = 0, j = 0; i < 10; i++) j += blah[i]; printf("%i\n", j); return 0; }jelikoz s icc (10.1.008) nemam moc velke zkusenosti, pouzil jsem jenom "-O3 -ipo -parallel" stejne u gcc (4.1.2) pak jenom "-O3", pokud mate nekdo dalsi napady a zkusenosti podelte se s nimi v diskuzi. test jsem delal na svem notebooku s core duo, aby si to prekladac vychutnal ;-]. tak a vysledky:
icc -O3 fib.c | 14.787s |
icc -O3 -ipo fib.c | 14.640s |
icc -O3 -ipo parallel fib.c | 8.935s |
gcc -O3 fib.c | 6.646s |
int fib(int i) { int result; printf("start: %i\n", i); result = fib0(i); printf("end: %i\n", i); return result; }
icc -O3 -ipo fib.c | 14.522s |
icc -O3 -ipo -parallel fib.c | 14.209s |
takze vysledky pro me nejsou moc oslnujici, asi by bylo dobre udelat test i na nejakych "real life" prikladech... ale to uz nechavam na ctenych ctenarich...
Tiskni Sdílej:
gcc -O3: 5.62s icc -O3: 6.07s java: 5.34sParalelizacia icc u mna bola viacmenej bez vysledkov na vykon (vramci statistickej chyby...)
icc -O3 -parallel -axT -xO : 5.99s icc -O3 -parallel -openmp -axT -xO : 6.03s
gcc -O3: 3.18s icc -O3: 6.68s java: 5.34s
icc -O3 -ipo fib.c 14.640s icc -O3 -ipo -parallel fib.c 8.935sje zrychleni o cca 40%, coz je na dvoujadrovem procesoru na hranici praktickych moznosti (kvuli rezii hardwaru i softwaru). a proto pisi: ,,ta paralelizace ma docela hezke vysledky'' v dalsim testu jsem se ji pokusil rozhodit side-effecty, aby se ukazalo, jak to zvladne... a s tim uz si nedokazal poradit, ale to neni rezie -- jinak by to nefungovalo ani v prvnim pripade... navic je zrejme, ze icc zvlada jen paralelizaci smycek a ne volani.
int fib1(int x, int i) { if (i <= 2) return x+1; return fib1(fib1(x, i - 2), i - 1); }tak jsem dostal +- stejný výkon od gcc i icc (= stejný jako gcc a původní program). MMCH, kdo dokáže říct co ten asm pro původní program skompilovaný gcc dělá, je fakt dobrej.
muj paralelizujici interpreter schemu se s tim vyrovnal bez vetsich ztratSmím se zeptat jak? Spoolujete ty side-effecty a třídíte podle času, kdy měly nastat? Nebo je jen vykonáte v nějakém pořadí a tím změníte sémantiku programu? Co děláte, když např. čtete hodnotu, která teprve bude zapsána?
nbench 2.2.2, kod v C, testuje razeni ciselne a retezcove, operace nad bitovymi poli, FFT, huffman, sifru idea, neutonovou sit...
gcc -march=nocona -O3
MEMORY INDEX : 27.356 INTEGER INDEX : 25.623 FLOATING-POINT INDEX: 42.247
icc -O3 -axT -xT
MEMORY INDEX : 22.976 INTEGER INDEX : 32.503 FLOATING-POINT INDEX: 78.696
icc -O3 -axT -xT -parallel
MEMORY INDEX : 23.318 INTEGER INDEX : 32.532 FLOATING-POINT INDEX: 78.393
-ipo vykon vyrazne snizilo...
Prevaha icc v necelociselnych vypoctech je brutalni.
Je pravda, ze spousta veci by se dala vylepsit a nektere techniky v gcc uplne chybi. Take je pravda, ze pro cloveka, ktery problematice rozumi, jsou nedostatky opravdu hodne protivne. Ale vyraz "mizerne optimalizujici" u gcc rozhodne neni na miste.
Pokud jde o zapisek konkretne, tak nevypovida vubec o nicem.