Intel oficiálně uvedl Nehalem v ČR

Diskuze čtenářů k článku

19. 11. 2008 14:11

Zvyšování počtu jader (ikdyž jenom naoko) mi začíná přípomínat nedávvné období kdy se závodilo v počtu břitů na holení - až na to nakonec nějaká z těch firem použila v reklamě. Když přeci oholí tři břity líp než čtyři, udělame dvacetibřitý strojek :) nebo osmijádro :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
19. 11. 2008 15:34

http://www.theonion.com/content/node/33930 …klasika.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 00:39

Jojo - to jsem měl přesně namysli :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
19. 11. 2008 22:30

no nevim, ale pri stejne frekvenci ma vic jader vzdy vetsi vykon nez min jader (az na naky prasarny typu HT).

Takze nechapu to srovnani. S frekvenci to uz dal moc nejde.

A stran intelu je akorat skoda, ze to neni realny 8jadro.

A jinak uz se tesim na stav, kdy bude mit vlastni jadro kazdy proces extra vcetne notepadu ... to budou odezvy.

Souhlasím  |  Nesouhlasím  |  Odpovědět
19. 11. 2008 22:57

Obecně se dá souhlasit, až na ten detail, že čím víc jader, tím menší frekvence. A čím menší frekvence, tím nižší výkon v neoptimalizovaných programech (... kterých zjevně není málo). Za poslední čtyři roky se výkon v neoptimalizovaných programech prakticky nezvýšil, resp. se zvýšil natolik, že majitelé čtyři roky starých počítačů je můžou dál vesele používat a být spokojeni, že jejich stroje za dnešní špičkou nijak významně nezaostávají.

Jinak víc jader nemusí mít nutně vyšší výkon. Zrovna u jednovláknových aplikací má jednojádro o 3 až 5 % vyšší výkon než jinak úplně stejné dvoujádro. Proč? Protože "skvělý" scheduler Windows přehazuje procesy z jednoho jádra na druhé a tím způsobuje velkou neefektivitu cache. V důsledku program běží pomaleji a trpí nárazovými propady výkonu, což se mu u jednojádra stát nemůže.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 04:37

to je ale problem OS ... a navic jednoho zcela konkretniho OS.

Proto jsem zminil to "vlastni jadro kazdy proces extra" - tim jsem myslel, ze by kazdy proce mel permanentne prideleno jedno jadro. Takze by odpadlo jakykoliv svapovani.

Plytvani zdroji jak svina, ale ten fofr... ten fofr...

A stran te frekvence jsem cetl (dokonce mozna primo od tebe;) ze nehalem umi uzavirat/zpomalovat nevyuzity jadra a zrychlovat nejvytizenejsi.

Timhle smerem IMHO pujde cesta - jadro co se povede nejvic bude natakteny a o ostatni vlakna se budou starat ostatni jadra.

Takze jeden optimalni chip pro desktopy, workstations i servery. O tomhle snily generace spravcu!

Ale jsme teprve na zacatku zavadeni vice jader ... prvni auta taky nepredehnaly kone ... ani nedohnaly...

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 20:32

To, ze ma vice jader smysl s optimalizaci SW asi vime vsichni. U teto architektury ma byt hlavni prinos pametova sbernice, ne?

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:55

Hlavní přínos je NUMA architektura. Nehalem není čip pro desktopy. Kdyby byl pro desktopy, tak by:

1) Nemusel být prodáván jen jako čtyřjádro, když ho na desktopech využije jen mizivé procento lidí.

2) Neměl HyperThreading, který způsobuje ignorování priorit, což je u nestejně důležitých úloh dost na závadu.

3) Neměl pro desktop tak nevhodně navrženou cache (je menší, méně účinná a hlavně o dost pomalejší než u Core 2).

Souhlasím  |  Nesouhlasím  |  Odpovědět
19. 11. 2008 22:38

No ono to bohužel nejde jinak. Samo, že by bylo nejlepší mít jedno jádro na superfrekvenci. Jenže to prostě nejde, protože do hry vstupují takové limity, jako rychlost světla. Si spočítejte, jak daleko by viděl procesor za jeden takt při frekvenci 10GHz a zjistíte, že by neměl vpodstatě odkud brát data, pokud by teda viděl vůbec sám sebe.

Takže jediná možnost jsou vícejádra a následná marketingová masáž, jak je to skvělé a k čemu všemu se to nehodí. To, že pro to nemáme praktické využití, je věc druhá...

Souhlasím  |  Nesouhlasím  |  Odpovědět
19. 11. 2008 23:08

Vytvořit vysokofrekvenční procesor by samozřejmě šlo. Akorát by se ale musely používat jiné materiály než levný křemík a musely by se využít nové koncepce (3D transistory, optické spoje atd.). A to je pro výrobce jako Intel mnohem dražší řešení, než slepit pár procesorů založených na před deseti lety vyvinuté architektuře a zaplatit si v televizi reklamu, jak je to moc super (víc pruhů = víc Adidas). Nicméně sám pozoruju, jak je z této situace Intel zoufalý - chodí mi jejich emailové "propagační" materiály pro programátory a za poslední dva roky je to všechno jen a pouze o vícjádrech a ničem jiném. Na všechny ostatní typy optimalizace se úplně zapomíná. Dělají jeden seminář o multithreaded programování za druhým a chrlí velké množství papírů o tom, jak psát programy multithreaded. I jim je jasné, že nebudou moct tahat zákazníky za nos věčně, u Pentia 4 jim to vydrželo 5 let, ale to měli mnohem silnější pozici než dnes.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 04:45

pentium 4 byl ten primotop ve tvaru CPU? ;) Pardon za neznalost :) ale od dob Pentia III (to jeste slo) jsem bral intel jenom jako marketingovou firmu ze statu co se tak nak okrajove venuje vyrobe procesoru ... az do Core 2.

A stran vseho co vychazi z toho core 2, tak me teda za nos netaha. Protoze je mi jasny, ze hry to vzdycky utahne (vyvojari se prizpusobi) a vice jader je pro workstations a servery proste pravy pozehnani.

A popravde vicejadrovost je po dlouhe dobe (RDRAM, HT,...) prvni rozumna vec, co intel prosazuje.

TAkze jen houst.

A neprestavat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:33

Core 2 je neskutečně pomalý CPU. Schválně si zjisti, jaký byl výkon Athlonu 64 v době uvedení v roce 2003 a srovnej s dnešním výkonem Core 2. Pokud odmyslíme víc jader (... které jsou tam jen díky novější výrobní technologii a z ní plynoucí možnosti nižší spotřeby a levnější výroby), tak výkon se nijak rapidně nezvýšil - maximálně tak o 50 až 100 %. Za pět let dost chabý výsledek na to, kolik Core 2 dnes stojí. Dnes i majitelé relativně starších počítačů nemají vůbec žádný důvod k upgrade - ne o moc vyšší výkon neodpovídá nákladům vynaloženým na zcela novou platformu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:15

vzhledem k tomu, ze vyvoj se uz nejakou dobu toci hlavne kolem architektury (predevsim vice jader), je "osmysleni vic jader" tak nejak mimo.

Formule taky nebude lepsi (rychlejsi) nez motorka, kdyz si odmyslime ty 2 kola navic.

A nebal bych se tvrdit, ze bude o dost horsi - pomalejsi resp. neovladatelnejsi podle toho ktera kola odmyslime.

Souhlasím  |  Nesouhlasím  |  Odpovědět
24. 11. 2008 00:02

Pokud moje aplikace víc jader nevyužijí, tak je úplně jedno, jestli ty další jádra mám nebo ne. U formule to jedno není, víc kol oproti motorce jí dává možnost jezdit zatáčkami mnohem rychleji než motorka - protože ona další kola využije pro zlepšování stability. Bylo by ale nesmyslem dávat na formuli další jednu nebo dvě nápravy - taková věc by stabilitě nic nepřinesla a jen by zpomalila (větší tření). Je to stejné jako u procesoru, kde přidávání více jader snižuje dostupnou frekvenci, a tak tato jádra musí být využita, aby se to celkově vyplatilo.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 09:10

No s tím zvyšováním frekvence by to šlo jen tehdy, pokud by se CPU zmenšilo tak na rozměr 10x10 mm včetně kompletní paměti. Pokud vezmente frekvenci 10GHz, tak světlo za jeden takt uletí zhruba 30 mm, čili všechno ostatní je mimo viditelnost CPU. A vzhledem k tomu, že 30 mm může klidně měřit určitá dráha uvnitř procesoru (signál tam a zpět), tak při téhle frekvenci už má CPU co dělat s tím, aby vidělo samo sebe. Takže osobně vidím ty frekvence nad 10 GHz jako nerealizovatelné, protože už není odkud brát data na zpracování.

S těmi aplikacemi je to přesně jak říkáte. Vícejádra jsou tady už docela dlouho, ale aplikace, které by je nějak rozumě využily, téměř žádné. Dokážu si představit ještě tak 4 jádra, ale 8, 16, 32? To prostě nepadá v úvahu.

Celkem legrační mi přijde marketingová masáž Intelu, jak je víceprocesové programování jednoduché. Jak kdyby nebylo na světě nic přirozenějšího. Pravda je ale taková, že v programování není snad nic složitějšího.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 20:41

tak jsi nam tu zkritizoval uplne vsechno ... frekvenci, achitekturu (vicejadrovost) ... zbyva jeste zodpovedet, jak by vyvoj v tehle situaci resil odbornik vransen.

Ale posledni odstavec ukazuje, kde je problem: jsi odkojeny na jednovlaknovych aplikacich jednojadrovych procesoru. A ten odpor vuci multithreadingu je ze jsi asi delal jednu zkousku 10, protoze ti haprovaly semafory.

Smula. Kdysi byly pocitace slozitejsi nez kalkulacky.

Kdysi se javascript (dokonce i HTML!) povazovalo za programovani. Dneska je to click-clack a je ze me webovy programator.

Stejny vyvoj ceka multithreading. Ve hrach si taky nepise kazdy vyvojar vlastni engine.

Proste az bude vlakno normalni objekt, tak bude vygenerovani milionu vlaken asi tak stejne slozity, jako bylo v dobe textovych editoru napsat program Hello World!

Doufam, ze te neprekvapi, ze to rada lidi zvladla.

A te zkousky kvuli semaforum je mi lito

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:29

Jsem opravdu zvědavý, jak si představuješ onu jednoduchost generování vláken "jako objekty". Můžeš nám blíže přiblížit, jak to má cca fungovat? Protože zatím na to nějak nikdo nepřišel.

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:19

bavime se v teoreticke, nebo prakticke rovine?

Teoreticky je to myslim jasny a pokud ma nekdo mlhavou predstavu jak to udelat prakticky, tak se nevykecava tady.

Nicmene analogie s mysi a okny (stejne jako multitaskingem do urcite miry) - coz vse zcela prevzal OS - davaji tusit, ze od problemu multithreadingu bude brzo bezny vyvojar zcela odstinen...

Historie se opakuje a ja nevidim duvod, proc by zrovna tohle mela byt vyjimka.

Souhlasím  |  Nesouhlasím  |  Odpovědět
24. 11. 2008 00:08

Možná jsem něco zmeškal, ale teoreticky mi to tedy vůbec není jasné. A vzhledem k současným (ne)úspěchům vývojářských nástrojů v této oblasti si myslím, že to zatím není jasné ani těm, kterým by to mělo být nejjasnější. Na rozdíl od objektů a věcí jako GDI nebo eventy toto není logický krok vpřed směřující ke zjednodušení. Multithreading zpracování zásadně nabourává základní paradigma programování, že instrukce se vykonávají v pořadí, ve kterém byly definovány.

Můžeš tedy prosím naznačit, jaký je ten teoretický podklad? Rád bych se dozvěděl něco nového a třeba přehodnotím můj názor.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:29

Chlape BOMBA!!! Chápeš, že na tebe není průmysl ještě vůbec připravený!!! Prosímtě, ještě nějakou dobu zůstaň na škole, i za cenu opakování ročníku!

Když už tak válíš ty semafory a všechno je vlastně tak báječně jednoduché, můžeš nám tady vysvětlit, jaké standardní řešení pro synchronizaci nabízí prakticky jediný jazyk, který dokáže potenciál procesoru využít na maximum?

Tvé další postřehy nemá cenu moc rozvádět.

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:21

jaky standardni aplikace se nabizely pro automobily v dobe, kdy jeste nebyly silnice?

A clovek musel pred autem bezet s praporkem?

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:24

mimoto jsem se te zeptal na jasnou otazku - jak bys TY dal vyvijel procesory.

Jako odpoved jsem dostal, ze jsem idiot. No aspon vime, jaky mas nazor na to kudy se ma vyvoj prociku ubirat... nikudy, protoze vsichni sou idioti a nikdo tomu nerozumi (krome vranmena a ten to nerekne)

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:52

Jasně že by CPU nesmělo být rozměrově velké, nicméně nedostatečná rychlost signálů (mimochodem mnohem menší než rychlost světla) se dá řešit (a řeší se) pomocí vícestupňové pipeline (to se používalo už u 486ky, možná i dříve). Dnes primárně není problém rychlost transistorů, ale hlavně rychlost vodičů - i to by se ale dalo řešit, podle testů mají uhlíkové nanotrubice elektrickou i tepelnou vodivost, která o několik řádů přesahuje nejlepší běžné materiály (např. měď). S takovými materiály a novými koncepty (3D transistory, vícevrstvé logické obvody) by bylo možné mít procesor rozměrově malý, s vynikajícím chlazením a možností dosáhnout velmi vysokých frekvencí. Jenže je to mnohem složitější a dražší navrhnout i vyrobit, než vytvořit vícjádro a obviňovat programátory.

Jinak k té paměti - koncept Z-RAM slibuje rychlosti podobné jako SRAM, ale při šestinových nárocích na počet transistorů. Takže např. Nehalem s 8 MB cache by při použití Z-RAM mohl mít skoro 50 MB cache. Další stovky MB by mohly být při poměrně nízkých výrobních nákladech integrovány přímo do pouzdra u CPU. A s takovým množstvím už se dá leccos dělat. Ale zase, vyžaduje to použití SOI a to něco stojí.

Souhlasím  |  Nesouhlasím  |  Odpovědět
21. 11. 2008 00:14

No ona ta plošná velikost jádra má tak nějak neklesající průběh. Pořád se to drží kolem 100 mm2. Pokud by to mělo valit nad 10GHz, tak by se muselo jít s velikostí jádra tak pod 10 mm2 a to včetně integrace operační paměti.

Co se L1 Cache týče, mám ten dojem, že její velikost je tak akorát a že další zvětšení z 8MB na 50MB by už moc nepřineslo.

Vámi zmíněné technologie jsou pořád víceméně oblast sci-fi. Jo to byly řeči, jak budeme mít procesory na 100GHz, protože se podařilo na dané frekvencí spínat tranzistor, ale skutek utek. No uvidíme, kam se to bude ubírat. Pokud dál jako teď, tak souhlasím s vámi, že vlastně nemá moc cenu upgradovat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
snake  |  21. 11. 2008 02:11

Technická: procesor nemusí "na sebe vidět". U paralelizovatelných instrukcí a dat je to myslím naprosto zjevné, od toho jsou tu ty různé superskalarity, superpipeliningy, mnohočetné výpočetní jednotky na jediné jádro atd.atd. U instrukcí, které paralelizovat nejdou, holt CPU opravdu musí počkat, až "uvidí sám sebe".

Jinými slovy: domnívám se, že CPU na sebe nevidí už dávno. Ono totiž do té nejdelší dráhy je nutné započítat nejen zpoždění kvůli rychlosti světla (přesněji rychlosti šíření napětí, nebo jak se tomu říká, a které je něco "málo" pod rychlostí světla), ale i rychlost přepínání tranzistorů (nespínají okamžitě!) a ostatních součástek, které jsou po cestě... To podstatné je, aby data byla k dispozici ve chvíli, kdy jsou potřeba, a pokud k dispozici nejsou, tak se holt čeká. Konec konců při přístupu do RAM dnes CPU čeká běžně stovky (!!!) svých cyklů. A při přístupu do L2 čeká desítky (překvápko, ne?)... Dokonce ani L1 není zdaleka "zadarmo", tedy za jeden cyklus, i tam se musí čekat cyklů mnohem více... Takže nevyužívat se dnes kromě cachí i prefetchery, spekulativní vyhodnocování, branch prediktory, vícenásobné jednotky (ALU atp.) na jádro, pipeliny a mnoho dalšího, procesor by byl děsně pomalý (odhadem 100x), protože by neustále jen na něco čekal. Vše při dnešní velikosti a taktu...

Souhlasím  |  Nesouhlasím  |  Odpovědět
21. 11. 2008 09:56

Tak nejsem úplně odborník na architekturu procesorů, nicméně se domnívám, že časový signál clock je platný v rámci pracovního cyklu po celé ploše procesoru. To umožňuje synchronizovat chod celého procesoru a to i tehdy, když určité dílčí části jedou na pomalejší frekvenci. V tomto směru na sebe tedy procesor vidí.

Při taktu nad 10GHz už by asi nebylo možné tuto synchronizaci zaručit, takže výsledkem by bylo několik asynchronně pracujících jader, které neví jedno o druhém. Vzhledem k tomu, že sdílejí společné zdroje jako třeba paměť, to může být dost problém.

Souhlasím  |  Nesouhlasím  |  Odpovědět
snake  |  21. 11. 2008 10:50

Myslím si, že je to jinak. Rychlost šíření napětí je konečná, každý tik se tedy objeví někde dřív a někde později. Podle mne není ani vůbec nutné, aby se objevil na nejvzdálenějším místě procesoru ještě předtím, než generátor pošle tik nový. A osobně bych si tipnul, že tomu tak ani dnes není. Ona totiž při 3 GHz vychází délka, kterou urazí světlo ve vakuu, na pouhých 10 cm, jenže v procesoru se jednak nepohybuje světlo, a už vůbec ne ve vakuu, rychlost je tam rozhodně menší (o kolik, či kolikrát, to bohužel nevím ani řádově, drobné to prý ale nejsou), a především onu vzdálenost zkracuje každý tranzistor měnící v daném tiku svůj stav. Opět netuším o kolik, ale když uvážím, že nejrychlejší tranzistor dokáže spínat na frekvenci tuším 500 GHz, lze jistě předpokládat, že ty běžné v dnešních CPU se nad 300 GHz nedostanou, což by odpovídalo zkrácení o mm na každý tranzistor v cestě. Tipnul bych si, že skutečná rychlost, s jakou lze na spínání spoléhat, bude ještě o řád nižší, ale budu počítat raději konzervativně. Tedy suma sumárum 10 cm pro nejdelší možnou trasu v rámci procesoru, pokud by tam běhalo světlo ve vakuu, reálně to odhaduji ale na polovinu, tedy pouhých 5 cm, zkrácené navíc o mm za každý tranzistor v cestě.A opravdu se mi nechce zdát, že by se při dnešním počtu tranzistorů na procesoru (v řádu nad 100M) všechny cesty v rámci CPU dokázaly do tohohle limitu vejít.

Samozřejmě procesor s tím musí počítat a pokud na sobě následující instrukce závisí, musí před započetím druhé dokončit tu první (mám na mysli mikroinstrukci, neboli to, co CPU už dál nedělí na menší kousky). A tak pak holt čeká a čeká a čeká. Pokud paralelizovatelné jsou, prostě pustí následující hned v dalším tiku, přestože předchozí bude trvat doběhnutí třeba ještě 10 hodinových cyklů...

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 04:30

"To, že pro to nemáme praktické využití, je věc druhá..."

mluv za sebe

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 08:52

Vůbec se neboj a uveď nějaké konkrétní příklady, které by ospravedlnili masový přechod na vícejádra

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 13:16

Uplne zakladni pouziti pro dve jadra je ze hlavni proces ma k dispozici 100% vykonu jadra a vsechno ostatni si bezi na druhem jadre (vsechny ty skypy, icqs, firwally, antiviry, spyware a dalsi hromada srotu co mate v pocitaci...)

MA

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 15:00

Tohle je moc prima, takhle ale skončíš maximálně u čtyřech jader. Co s osmi, šestnácti? Poraď.

Dále - hlavní proces je vpodstatě jenom jeden a to ten na popředí, se kterým zrovna pracuješ a ani ten nevyužije CPU na 100%. Zbytek je ve stavu nečinnosti, co by taky dělal, že?

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 20:28

no jak kdo. Ja bych z vleku vytizil tak 50 jader.

"Dále - hlavní proces je vpodstatě jenom jeden a to ten na popředí"

jste ve spatne kategorii. Doporucuji poridit netbook ... nebo rovnou kalkulacku.

Pokud "pracuji" v notepadu, tak je proces samozrejme jenom jeden. Pokud delam neco co tvrva radove minuty/hodiny, tak je procesu tolik, kolik jich to zvladne.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:54

Já ti to zopáknu, je vidět, že v delším souvislém textu se poněkud ztrácíš: Vůbec se neboj a uveď nějaké konkrétní příklady, které by ospravedlnili masový přechod na vícejádra

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:25

virtualizace

Souhlasím  |  Nesouhlasím  |  Odpovědět
24. 11. 2008 00:11

Ale no tak, kolik lidí využívá virtualizaci? To je tak pro servery a programátory, ale nikdo v běžném kancl použití, kdo si sem tam chce zkomprimovat MP3ku nebo spočítat něco v Excelu, nebude používat virtualizaci.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:27

To všechno ostatní má obvykle takovou spotřebu času CPU, že by to v pohodě utáhla i 486ka, natož dnešní CPU. Taky si běžně nekupujeme dva byty "pro případ, že by náhodou přijeli příbuzní".

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:34

Tak tohle je dost dobrý postřeh

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:27

no vy dva ste se teda nasli.

Nejak vas nenapadlo, ze kdyby takhle uvazovali vsichni, tak jeste furt mame ty 485 a tech pul mega ram by skutecne stacilo?

Fakt by me zajimalo, jak by se v tom pripade zivil Eagle

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:27

486 samo

Souhlasím  |  Nesouhlasím  |  Odpovědět
24. 11. 2008 00:15

Počítače jsem už kdysi dávno na střední škole považoval za spotřební zboží, a proto jsem se rozhodl se jim v profesním životě nevěnovat. A toho opravdu nelituju. Pro mě mají cenu kvůli vývoji aplikací pro podporu rozhodování, což ale samozřejmě vyžaduje, aby byly tyto počítače co nejrychlejší (to umožňuje složitější výpočty) a zároveň se ony věci jednoduše programovaly (což je s multithreadingem opravdu těžko slučitelné).

Souhlasím  |  Nesouhlasím  |  Odpovědět
25. 11. 2008 04:39

no zrovna aplikace pro podporu rozhodovani jsou myslim ukazkovym prikladem, kde se da multithreadingem zvysovat vykon s minimalnimi reziemi.

Samozrejme pokud pouzivas komercni expertni systemy, tak ty jedou jednovlaknove proste proto, ze to tak naprogramovali. Pokud jsou parametry rozhodovani nezavisly, tak neni problem vyhodnotit prvni pulku v jednom vlaknu a druhou v druhym. (samozrejme pokud jsou nezavisly).

stran vyse uvedeneho "NAKLIKEJ SI VLAKNA":

- uzivatel klikne na tlacitko "new thread"

- uzivatel naklika (nadefinuje) vstupni data

- uzivatel naprogramuje proceduru/funkci

- hotovo

OS:

- zavede fci do pameti

- pocka na dostupnost vsech vstupnich parametru (patrne vystupy jinych funkci)

- alternativne pocka az fci nekdo/neco spusti

- spusti flakno

- po ukonceni vlakna hodiny vystupni parametry do schranky (patrne je bude chtit dalsi vlakno).

Tohle uz normalne funguje, akorat ze je to pouzitelny jen pro vlakna "fire and forget". Prinejmensim ja uz jsem takhle par vlaken "naprogramoval" a to nejsem zadnej enhanced programator. Proste je pustim a necham bejt (hlavni vlakno uz nemusi zajimat, tak vo co go).

A stran spolupracujicich vlaken neni duvod, aby tohle vsechno delal programator - to ze jsou programatori bud arogantni hovada, ktery chcou mit vsechno pod kontrolou nebo naopak negramotni klikaci je dano vyvojem v IT.

Neni to zadne natrvalo platne paradigma.

Nerikam, ze to bude zitra - jen by bylo dost spatny, kdyby tenhle vyvoj zastavil, protoze programatori ze stare skoly jsou zvykli myslet nelinearne.

Predpokladam jsi nekdy pracoval s architekturou klient-server. Tohle je uplne totez. Proste vlakno bude cekat na parametry, pak pobezi a pak vyflusne parametry.

Problem je s kritickymi sekcemi a chybovymi stavy. A tady uz konci krasna teorie a zacina tvrda praxe. Nicmene az tohle MS (nebo nekdo jinej) vyresi, bude vlakno normalni objekt.

Coz je taky maximalni mira slozitosti, ktera by mu mela nalezet. Linearni mysleni je pozustatek vyvoje, zadne paradigma.

Souhlasím  |  Nesouhlasím  |  Odpovědět
25. 11. 2008 04:43

a to nemluvim o tak jednoduchych vecech, jako jsou predprogramovany algoritmy napr. na setrideni seznamu.

Priklad "setrid (pole, parametr)" iniciuje 2 vlakna - prvni vybere nejnizsi polozky a setridi je - druhy vlakno vybere nejvyssi polozky a setridi je.

Setrideni (temer) dvojnasobnou rychlosti a vsechno co musi programator udelat je naspat

setrid (pole, parametr)

hotovo.

Grafiku taky neprogramujes pixel od pixelu, ale pouzijes predpripraveny prikazy directX (nebo openGL).

Taky je obrovskej potencial. Jedinej problem je to naprogramovat. Ale az to bude, nebude s pouzitim problem (jako dnes neni problem s pouzitim directX.

Souhlasím  |  Nesouhlasím  |  Odpovědět
25. 11. 2008 04:48

mimoto jsem tuhle starou diskusi vyhrabal, protoze na nove bylo vcera o vanocich a magorech, co utrati 15 000 !!!!!!!!!!!!!!! za oblecky pro psy !!!!!!!!!!

Neni lepsi aby tihle trotli vyhazovali penize za neco, co aspon popozene vyvoj? Treba za procesory, ktery nepotrebujou?

Jak to vidim ja, radsi at vyhazujou prachy za neco co pohne s vyvojem. Stejne je za neco utraci.

Takze Eagle, kdyz uz musis jecet, ze 5let stary procesory jsou temer stejne vykonny jako dnesni, nervi to moc nahlas.

Kdyz budou PC skutecnou spotrebni elektronikou jak jsi napsal, tak to prospeje vsem. Mobila si kazdej trouba taky koupi novej jednou za rok. Tak nevim, proc by to tak nemohlo byt u CPU.

Jak jsem napsal - useri nekam ty prachy stejne nacpou. TAk proc ne do kompu...

(podotykam, ze nemam zadny primy financni zajem na hw ... jen mi prijde lepsi vyhazovat prachy za neco, co aspon trochu pohne s vyvojem nez za kraviny typu svetrik a kozacky pro psa).

Souhlasím  |  Nesouhlasím  |  Odpovědět
27. 11. 2008 18:56

Ječet? Zvláštní způsob vyjadřování. Co takhle se trochu zamyslet nad slovníkem?

Mobil už mám skoro čtyři roky stejný - není důvod ho měnit, protože nový telefon mi v zásadě nepřinese žádný větší užitek, spíš naopak (větší display na úkor klávesnice fakt nepotřebuju).

K oněm návrhům - to jsem se moc nedozvěděl, tyto základy se dají zmáknout za den dva. Ale tím to asi tak končí. Protože vlákna typu "spušt a už se nestarej" nejsou zrovna typickým příkladem pro převod sériových úloh na paralelní. To jsou tak vlákna pro serverové úlohy jako obsluhování příjmu dat na portech atp., kde jde primárně o to, aby se omezovaly latence a aby se mohlo stát víc věcí ještě před dokončením výpočtů. Tam primárně nejde o výkon a takové úlohy se programují úplně stejně i pro jednojádro. K k onomu setřídění - zrovna to je úplný nesmysl, protože třídění je vysoce datově závislá věc a kdyby to bylo rozděleno mezi dva procesory, tak tyto nebudou dělat nic jiného, než jen čekat, než se data přesunou z jednoho na druhý a opačně. Výkonový přínos by byl záporný.

Souhlasím  |  Nesouhlasím  |  Odpovědět
27. 11. 2008 19:31

Pokud to zaplatis, tak to napisu a pojede to rychlej (nebo vratim dvojnasobek) s 2 podminkami:

1) budu mit k dispozici median (jeho vypocet by mel vykonove neodhadnutelny dopad)

2) pole bude dostatecne velky

Samotny fungovani:

1) procesor 1 pretahne spodni polovinu tabulky (pole) - prosty vyber vseho pod medianem (procik 2 ceka)

2) procik 1 tridi spodni polovinu; procik 2 pretahne horni polovinu tabulky

3) procik 1 tridi; procik 2 tridi (kazdy svou polovinu tabulky)

4) procik 1 ulozi spodni polovinu tabulky; procik 2 tridi

5) procik 2 ulozi horni polovinu tabulky

Jak muzes videt, tak jediny problem je ve fazi 1 a (castecne) ve fazi 4. Ve fazi 2 a 3 jedou oba prociky naplno - pokud budou tyto dve faze dost vypocetne narocne, muj algoritmus bude vykonnejsi.

A jediny, kde bude muj algoritmus zaostavat proti jednovlaknovymu je ve fazi 1. V ostatnich fazich bude prinejmensim stejne rychly.

Mimoto jsi reagoval na neco jinyho, nez byl hlavni vyznam - tim bylo, ze az budou predprogramovany procedury vyzivajici vice vlaken, bude pouziti stejne jednoduchy jako dnesni DX.

A vlakno bude jen objektem.

"to jsem se moc nedozvěděl, tyto základy se dají zmáknout za den dva. Ale tím to asi tak končí."

proto jsem to prvne ani nepsal, pacto sem predpokladal, ze tohle vysvetlovani by urazilo tvou inteligenci.

Ale jak jsem rekl - kdokoliv vi jak to udelat prakticky, tak se nevykecava tady, ale nekde na brainstormingu, kde k tomu ma odpovidajici prostredi.

"Ječet? Zvláštní způsob vyjadřování. Co takhle se trochu zamyslet nad slovníkem?... Mobil už mám skoro čtyři roky stejný - není důvod ho měnit"

sorry, ale nekdy je nakopnuti nejlepsim zpusobem jak se probrat.

Takze jeste jednou: kdyby nebyl svet plni xxx a xxx a xxx, kteri chteji

a) byt IN takze kupuji kdejakou novou blbost

b) jsou techie takze kupuji kdejakou novou blbost

c) nerozumi elektronice, takze kupuji kdejakou novou blbost

d) chteji to nejlepsi, takze kupuji kdejakou novou blbost

e) ..., takze kupuji kdejakou novou blbost

f) ..., takze kupuji kdejakou novou blbost

... dtto dtto

mel by jsi mobil co mas, nebo by jsi pouzival model Krosna s ohromujici vydrzi 3 minuty hovoru a 1 hodina pohotovostniho rezimu?

Kdyz chce nekdo utracet, tak ho nech. Kdyz chce utracet za technologie, tim lip !

Neni v nicim zajmu, aby spotrebitelska masa misto technologii zacala kupovat decky pro psy. Prinejmensim ne v zajmu ajtiku, protoze pak bysme ten drahej vyvoj museli zatahnout sami.

A zde jsi si slovo "jecet" mel prelozit jako:

1) je DOBRE kdyz pises ferovy recenze (neprikrasleny, nezmanipulovany) - nuti firmy vyvijet a tolik nemarketingovat

2) je DOBRE kdyz koncakum rikas, ze tohle je smejd v porovnani s konkurenci - nuti firmy vyvijet a tolik nemarketingovat

3) ALE NENI DOBRE kdyz koncakum vykladas, jaci sou idioti, ze si koupili neco co nepotrebujou (tj. rikas jim at nekupujou vubec a to je NE NE NE pro vsechny, co maj zajem aby do IT tekly penize radsi nez do decek pro psy).

that's it

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 17:31

ad fungování - Teorie pěkná, akorát jsi zapomněl poznamenat, že medián dokážeš zjistit jedině ze setříděného (!) pole.

"pokud budou tyto dve faze dost vypocetne narocne, muj algoritmus bude vykonnejsi." - jasně, jasně, ale jak to zjistíš? Protože pro malá pole (dejme tomu 300 a méně prvků) by i při znalosti mediánu byl takový algoritmus pomalejší (tvorba threadů a přesuny dat mezi CPU). Nehledě na to, že by jsi zaplácnul víc paměti a saturoval rychlost DRAM.

"az budou predprogramovany procedury" - až to bude, tak to bude... ale já se ptám, kdy to teda bude? Protože podobné věci jsem slyšel i o MMX, SSE a dalších funkcích.

ad algoritmy - To je zajímavé, že vždycky, když jsem se bavil s někým, kdo hrdě podporoval multithreading, tak dotyčného argumenty vždycky zkolabovaly na tom, že nebyl schopen vyvodit, jak by překonal (všeobecně známé) limitace multithreaded programování. Vždycky to byly obecné povídačky, často zakončené hláškou, že někdo jiný to ví a tento někdo jiný zachrání svět.

ad mobil - Zjevně nerozumíš, co jsem chtěl říct. Nový mobil (nebo jakákoli jiná věc) má pro mě smysl, pokud mi nabídne víc, než mnou dnes používaný výrobek. Kdysi jsem měl mobil, měl černobílou obrazovku a ne úplně pohodné ovládání. Teď mám mobil, který mi vyhovuje víc - lépe se ovládá, má další funkce jako třeba kalendář (předchozí snad neměl vůbec nebo nepoužitelný), má upomínky, větší paměť na SMS atd. Tyto věci využiju, mají pro mě užitek, a proto jsem si ho koupil. Nezajímá mě ale mobil, který by třeba přehrával videa - takovou věc nevyužiju, a proto za ní nehodlám platit. Obdobně s foťákem v mobilu, přehráváním MP3, velkým displayem atp. Takový Apple iPhone nebo jiné smart phony jsou pro mě na nic. A co mi nevyhovuje, to si nekupuju. Pokud se někdo chová iracionálně a kupuje věci, které nepotřebuje, pak je to jen jeho problém a jeho nedostatek finanční disciplíny.

"Kdyz chce utracet za technologie, tim lip !" - Tohle ale nemá s technologií nic společného. Technologie jsou věci jako fúzní elektrárny, urychlovač v CERNu, vývoj litografie, vývoj nanotrubic. Konkrétní výrobky nejsou výsledkem techniků, ale naopak marketingu. Akcionáři Intelu chtějí dividendy a někdo jim je musí dát. Technik by věděl, že v situaci, kdy není jednoduché zvyšovat frekvenci, se musí přemýšlet o jiných cestách - a ty jsou dvě: nové materiály a koncepce nebo bullshiting v podobě multithreaded programování. Technik by zvolil variantu 1, i když ví, že je mnohem náročnější a dražší. Ale konec konců je to vývoj technologií. Variantu 2 zvolí manažer, jehož cílem je mít co nejvyšší zisk pro akcionáře a je mu úplně fuk, jakým způsobem ho dosáhne. Core wars je obdobný podvod na zákazníky jako hlášky typu "Pentium 4 - jediný procesor se skutečnou frekvencí 2 GHz. Zkontrolujte si frekvenci vašeho CPU." prezentované Intelem zhruba šest let dozadu. A pokud si to zákazníci neuvědomí, budou platit za něco, co jim vyšší užitky nepřináší, přestože to podle amatérky provedeného a patrně i ovlivněného testu v časopisu XY vypadalo úžasně.

Je to celé o přemýšlení - pokud mám software vhodný pro 80 jádro, tak si ho honem koupím (má to smysl), ale pokud nemám, tak ho kupovat nemám, tím snižovat dividendy akcionářů Intelu a nutit je ke změně vedení.

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 20:32

"uveď nějaké konkrétní příklady, které by ospravedlnili masový přechod na vícejádra"

to je jen utok/provokace, nebo vazne myslena otazka?

Kdo zatezuje CPU vic jak z 10% tak vi jak to vyuzit.

A pokud si to mam prelozit jako "hraju hry a obcas taky 'pracuji' ve wordu a internetovym prohlizeci" tak samozrejme zadne.

V tom pripade ale nevim, co delas na platforme PC, protoze pro tvy potreby je zcela predimenzovany uz to Core2.

A nebal bych se rict, ze pro tvy potreby by nejrichlejsi odezvy mel mechanicky psaci stroj :-B:-B

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 20:33

samozrejme zalezi, jak rychle zvladnes otacet stranky :-B

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:36

Samozřejmě záleží (na tom), jak rychle dokážeš reagovat sám na svoje vlastní příspěvky...

Souhlasím  |  Nesouhlasím  |  Odpovědět
22. 11. 2008 00:29

a jeste k tomu slepej.

Reakce je komentar, z kteryho pouziva citaci (autor: vransen).

Fakt bys mel zkusit i jiny pouziti pocitace nez word (nebo notepad)

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:23

To je zase jeden nesmysl. Jaképak předimenzované? Fakt ti nedochází, že jsou i jednovláknové úlohy, které jsou extrémně náročné na výkon CPU? Co když budu mít 50 MB Excel soubor a budu používat Excel 2003, který multithreading nepodporuje? Jak dlouho bude trvat přepočet všech buněk? Nebude u takového software úplně fuk, kolik mám jader, ale o to více bude záležet na frekvenci? To samé třeba komprimace MP3, některé hry atd. A hlavně prosím neříkej, že se má uživatel přeorientovat na modernější software - to je čistě na uživateli, co mu vyhovuje a za co už zaplatil (jsou lidé, kterým se Office 2007 po uživatelské stránce nelíbí nebo už prostě mají koupený Office 2003).

Souhlasím  |  Nesouhlasím  |  Odpovědět
20. 11. 2008 23:50

O té komprimaci MP3 jsi už jednou psal s odkazem na paralelní Lame. Nevím, jestli ten projekt ještě nějak jede, nicméně tohle je celkem jednoduché. Stáhneš CD a pak dávkou spustíš N komprimačních procesů. Ještě lepší výsledek by byl zpracování celého archivu. Jakž takž využití. Bohužel jediné, co mě napadlo.

S tím Excelem je to samozřejmě jen takový marketingový trik. Ještě nikdy jsem nečekal na přepočet Excelové tabulky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
21. 11. 2008 00:04

To já u Excelů čekám skoro pořád. Stačí, aby někdo "vykoumal", že místo pořádného programování se všechno našroubuje do buněk a propojí funkcemi a problém je na světě. Takto stačí už pár desítek listů plných dat a nějakých závislých přepočtů a klidně to jede i na 2.5 GHz procesorech několik desítek sekund až minut (dle složitosti). Pak nějaké výpočty na tom založené trvají klidně i hodiny. Ano, při správném programování by to trvalo nanejvýš minuty, ale to bohužel často ten, kdo to ví, nemá šanci ovlivnit. Excel 2007 je v tomto spása, protože jeho systém přepočítávání je nejen díky více jádrům rychlejší, ale taky je mnohem propracovanější (nepřepočítává všechno, jen to opravdu nutné). Škoda ale, že ne všechna makra v něm fungují, takže na něj nelze jednoduše upgradovat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
snake  |  21. 11. 2008 02:20

Myslím, že i kterýkoli nižší Excel přepočítává jen to, co je nutné. Ono to totiž ani jinak dělat nejde: Excel totiž musí mít v sobě zadrátovaný strom závislostí (konec konců takhle přesně detekuje i cykly, při kterých by se jinak nikdy nedopočítal), a vše tedy musí počítat "odspoda nahoru" (kořen stromu výpočtu je nahoře, listy dole).

Tím nezpochybňuji, že mohli v nových Officech přidat mnoho optimalizací, včetně využití více jader.

Souhlasím  |  Nesouhlasím  |  Odpovědět
24. 11. 2008 00:19

Teoreticky ano, ale praxe je jiná. U skutečně velkých souborů s mnoha tisíci až desetitisíci vzorců tento mechanismus selhává a přepočítává se všechno. Obdobně u velkých souborů nefunguje v Excelu 2003 hledání závislosti vzorců (také selhává). Tyto dvě věci v Excelu 2007 fungují bez problémů a navíc Excel 2007 má tu výhodu, že přepočítávání jede v separátních threadech a ne ve stejném jako user-interface, takže i při přepočítávání je možné upravovat buňky (Excel 2003 v takové situaci zatuhne a musí se počkat na dokončení přepočítávání).

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor