Procesori i MBO

Kako prevesti thread (kod procesora)?

VonMackensen čet 26.8.2021 08:56

Riječ dretva dolazi od njemačkog draht, etimološki istovjetna engleskoj riječi thread, a nekad je označavala debeli postolarski konac. Od dretve dolazi i prezime Dretar.

Krajem 20. stoljeća traži se adekvatni hrvatski prijevod za thread u računarstvu. Jedan dio profesora na FER-u se priklanja riječi nit, a drugi pak iz ropotarnice povijesti vadi staru riječ dretvu, etimološki istovijetnu riječi thread i smatra ju za boljim prijevodom budući da dretva nema nikakvo drugo relevantno značenje vezano uz sebe (za razliku od niti).

 

Ajar čet 26.8.2021 08:58
Marko_244 kaže...

Dakle, određeni procesor ima, recimo, četiri jezgre i osam threadova. Kako taj izraz prevesti na hrvatski odnosno koja se terminologija koristi u ovoj prilici? 

 "thread" je, u ovom slučaju, "slijed" (odnosi se na obavljanje programiranih uputa, odn. obradu naredbi). zipa: u množini je "sljedovi". dakle, "četiri jezgre i osam sljedova (obrade)". mislim, kad sam već prevoditelj i sudski tumač (too much) pa, rek'o, da doprinesem, zlu ne trebalo . "dretva" je zajebancija na temu postolarske niti (posebno čvrstog konca za opšivanja). šit je, tradicionalno, u tome što se u računalnom žargonu rabi sleng (iliti "ulični govor"), što je nesuvislo prevoditi doslovce pa se trudimo smisleno. 

Mladen čet 26.8.2021 10:56

Samo da opet ne krenu sa čigrastim velepamtilom :)

 

edit: da budem ontopic a ne samo Statler ili Waldorf :) ... niti su i meni prihvatljivije, bar vizualno asociraju na dijagram toka, odnosno kako je već Ajar objasnio, slijed.

 

CalvinRi čet 26.8.2021 11:21

Ja sam u programiranju vec 20 godina, odrastao sam uz rijec 'nit', i kad cujem ove mladje kako govore dretva slabo mi je, iako shvacam otkud je to doslo. Dretva je po meni vrlo specificna stvar, a nit vise genericka i primjenjiva u vise situacija i konteksta, i po meni bolja za IT. 

ihush čet 26.8.2021 13:14
Ajar kaže...
Marko_244 kaže...

Dakle, određeni procesor ima, recimo, četiri jezgre i osam threadova. Kako taj izraz prevesti na hrvatski odnosno koja se terminologija koristi u ovoj prilici? 

 "thread" je, u ovom slučaju, "slijed" (odnosi se na obavljanje programiranih uputa, odn. obradu naredbi). zipa: u množini je "sljedovi". dakle, "četiri jezgre i osam sljedova (obrade)". mislim, kad sam već prevoditelj i sudski tumač (too much) pa, rek'o, da doprinesem, zlu ne trebalo . "dretva" je zajebancija na temu postolarske niti (posebno čvrstog konca za opšivanja). šit je, tradicionalno, u tome što se u računalnom žargonu rabi sleng (iliti "ulični govor"), što je nesuvislo prevoditi doslovce pa se trudimo smisleno. 

 -točno .. 'ali'. :)

 

-zato se koristi riječ dretva, već objašnjeno, jer se ne koristi često i tad nema nesporazuma mada je recimo 'smiješna' kao i stotine drugih (čigrasto velepamtilo i sl.)...

-programer će 'refleksno' i dalje razmišljati na engleskom, thread.. i neće ga prevoditi, osim za školske potrebe ili časopise.. (jer se moramo držati hr standarda..)

-pa sad 'ispravak' točnog, slijed.. nije slijed, jer je u pitanju paralelizam, slijed je u sekvencijalnom radu, tj upravo thread je suprotno od slijeda, outoforder i problem sinkronizacije obrade podataka-rezultata kao kod svakog paralelizma, pri čemu se može računati više mogućih odgovora koji se tad odbacuju i koristi se jedan-točan ovisno o ostalim rezultatima (kao baratanje podatcima iz keša i sl.)..

.. slijed naprosto nije smisao značenja nečeg što se ne obavlja u nizu, lančano ili kao niti platna.. tj upravo u tome je razlika višejezgrenih-paralelnih procesa koji se mogu izvršavati istovremeno i time se ubrza riješenje naravno ako je iskoristivo-točno, bez tog paralelizma, bez programiranja threadova, nema drugog riješenja negog algoritma osim klasični tijek programa (tko se sjeti starih basic brojeva-linija koda kao i goto..). Algoritam i programski kod se pišu linearno, izvršavaju se linearno, dok ovisno o mogućnosti cpu-a i opcijama kompajlera taj kod-algoritam prilagodimo paralelnom-therad načinu rada i tako ubrzamo-skratimo vrijeme u ciklusima koje bi u sekvencijalnom radu bilo nužno, kao što je traka-sekvencijalni medij a disk random-access.. problem multithreada je samo to da izračun druge-treće.. jezgre ovisi o prvoj jezgri-rezultatu, lančano.. tj neke stvari se mogu, neke ne, programirati (efikasno) kao single-multi thread... tj najjednostavnije je upravo s tim riječima singlethread-vs-multithread objasniti razliku, tj kod single ne moramo ni navoditi thread, kao što kod izbornika-menija s jednom stavkom zapravo nemamo izbor.. tek s više imamo izbor, barem dva-više tj sama riječ thread ima smisla u kontekstu multi, ne single. itd. :)

.. ili s nitima-dretvama, koncima-lancima (karikama-verigama).. ima smisla samo kad su u množini, tad nit postaje platno, cigla postaje kuća... ne jedna nit ili jedna cigla koja je tad 'ništa' tj nije proizvod-rezultat-sirovina.

-promet, pravila, semafori itd.. su ista stvar, tj ako postoji samo jedan automobil, tad su pravila nepotrebna, znak stop ili semafor.. smisao ima tek kad je više automobila u prometu, tako je s threadovima, uvjek množina jer jednina je inače zadana samim algoritmom i logičkim slijedom izvršavanja .. npr dok netko tipka na calculator cpu može unaprijed pogađati što će netko stisnuti nakon npr 2* .. i recimo ako je druga znamenka 2, tad izračunati u jednom threadu rezultat 4, u drugim ako je znamenka 3 =6 .. itd. i tad možemo imati brže rezultat, odnosno sve pogrešne odbacimo.

-u normalnim algoritmima je normalan singlethread.. većina, dok su poneki taskovi pogodni za multi, kao recimo rekodiranje video filea, svaki thread dobije svoj dio koji obrađuje paralelno i tad dobijemo max-brzinu (skraćivanje vremena) no to je samo za takav tip podataka-obrade kad rezultat a ne ovisi o b, c.. no i to je problem kod mpega i sl. jer se računaju zone, pa njihov prosjek itd i tad imamo multipass kodiranje koje u više prolaza uprosječi inače neovisne rezultate dok bi bez tog mogla biti vidljiva područja-kocke.. što zapravo i imamo kod 'nekvalitetnog' kodiranja itd.

 

-kraće, po smislu-značenju, ne može biti slijed, naprotiv, paralelizam izvršavanja eliminira slijed, suprotno značenje i uvijek se govori o više od jednog threada, više paralelnih procesa koji zajedno daju rezultat. Ne miješati s odvojenim procesima, npr zasebne app pa recimo calculator računa, dok antivirus skenira, filemanager copyra.. tad to nije multithread jedne app, nego više odvojenih-zasebnih procesa, koji se izvršavaju linearno kao singlethread svaki u zasebnom tasku. .. i tako opet dobijemo brzinu, tj glatkoću rada računala koje bi inače u klasičnom single task modu stalo dok recimo calc računa ili file kopira.. tj tek kad bi nešto završilo idući proces bi krenuo dalje.. a neovisno o broju jezgara to kao trik postoji od prastarih singlecore cpua, tj prebacivanje rada u real taskovima gdje svaki task dobije dio systemskog vremena za recimo clock i svakih x-tikova dobije refresh, nešto resursa cpua koji će prividno paralelno izvršavati više taskova no to je kao u filmu kadrovi samo zbog brzine privid paralelizma dok sam cpu to radi u ciklusu-taktu pa izgleda kao paralelno .. tj do multicorea je to bilo i jedino, dok je HT soft logika koja na nivou cpua glumi dva odvojena cpu-jezgre .. tj algoritam-aplikacija ili os ne moraju biti svjesni samog cpua i ne moraju biti posebno optimizirani-prilagođeni za iskorištavanje prednosti paralelizma u odnosu na sekvencijalni način rada. HT je soft fičer cpua koji praktički efektivno radi kao dvostruki cpu, ali u odnosu na pravi nema dvostruko resursa recimo level1-2-3 keša, broj registara itd i time je recimo slikovito dvostruko manjeg 'gepeka' (kapaciteta) u odnosu da je stvarno dva fizička cpua + gubitak same ht logike koja upravlja time i samim time traži dio cpu ciklusa za izvršavanje, tj kissovski, bez tog je brže jer je to jedan dodatni task .. i zato u benčevima za single-multi imamo 'čudne' rezultate ovisno kako test podesimo ili kako o(ne)mogućimo neku opciju cpua u biosu.. no u većini je ipak prednost jednostavno jačeg s više jezgara ili s htom.. dok se u pojedinim iznimkama može desiti primjer da je manji-jači-brži recimo ako ne mora hendlati ht i multi pa tako uštedi vrijeme za neke jednostavne operacije i to klase cpu kao celeron što recimo ni i7-i9 ne može nadoknaditi tj samo osnovne operacije kao zbrajanje su takve, sve ostalo je daleko ovisnije o instrukcijama cpu i recimo količini keša pa se na takvim težim taskovima vidi razlika celeron-i9.. itd itd. a sve je povezano upravo time da veći ima više, svega, keša, registara, tranzistora.. i mada je veći-jači, to više je istovremeno i 'teret' kao kamion-šleper pa će u slučaju da nam je za prijevoz dovoljan motor, motor biti brži, jer ga ta masa-veličina-količina ne usporava, tj šleper će prevesti u jednoj rudndi koliko bi motor prevozio mjesec dana ali bi za mali teret od par kg motor brže prevezao dok bi šleper bio neiskoristiv.. tj to je taj izuzetak i naravno da se većina roba-tereta prevozi šleperom pa tako je za većinu jači cpu i9 .. itd itd.

Brki1994 čet 26.8.2021 14:56
Marko_244 kaže...

@ihush >> lajkao sam i zahvalio, ali ovako pojašnjenje zahtijeva još i skidanje šešira. :)

 

Meni možda najdraži forumaš!

 

Zanimljiv, dobro argumentiranje, temeljitost i ti dugi tekstovi i način pisanja mi uvijek izmame osmijeh na lice! 

 

Koliko je tek tipkovnica promijenio 

Mladen čet 26.8.2021 15:13

Da, ihush standardno dobar :) ... iako sam navikao drugačije, ovako argumentirano tjera na razmišljanje. Navika je gadna stvar, a i svatko si apstrakstne pojmove vizualizira na drugačiji način.

Nismo baš neka IT velesila a posebno to nismo bili u počecima kad su se postavljali temelji pa je engleski tu jednostavno neizbježan, kao i latinski u medicini i botanici ili francuski u diplomaciji.

Tipkovnica, pisač, miš, (IT) podrška ... su mi ok, ali kad vidim osmerac, ipak prije pomislim na veslanje i pitam se di je kormilar :)

 

Ajar čet 26.8.2021 17:51
ihush kaže...

 -točno .. 'ali'. :)

 

(isto, kao iznad) + možeš napisati "istodobnih sljedova obrade" (ako je multithread) no izbjegavamo "kobasice" u prijevodu (pri čemu je štiocu ipak jasno o čemu se to tu) i nema nekoga baš smisla stranu riječ prevoditi stranom riječi (paralelizam, primjerice). neke strane riječi smo jednostavno "pohrvatili" (softver, hardver, bla), jer se nikome ne da (nema veze s tobom) pisati romane u prijevodu (koji ionako rijetki uopće čitaju). zato "slijedovi" (koji se mogu odvijati usporedno i/ili istodobno), ako je množina, a "slijed" ako je jednina u izvornom tekstu. prvo pravilo prevođenja: pojednostavi ("make it simple" - izbaci redundancije karakteristične za npr. engleski, izbjegavaj doslovni prijevod, ne opisuj markove konake itd.). sve ovo vrijedi kad ti je to posao, kao meni. inače, k'o ga jebe. mo'š i crtat'. 

 

pe se: ne zaboravimo kako je slijed poruka/"postova" u temi na forumu jednako "thread" (nižu se poput niske bisera na oglici, ah) no ban nije jelačić ili ray, nego zabrana 

 

ihush čet 26.8.2021 22:33
Brki1994 kaže...
..

 

Koliko je tek tipkovnica promijenio 

 - par .. (stotina).. to ni stara ibm-ka ne može izdržati...

 

Ajar kaže...
..

(isto, kao iznad) + možeš napisati "istodobnih sljedova obrade" (ako je multithread)..

 

 - opet, ne ispravljam nego recimo 'učim' mlade (programere) kako ekšli radi cpu-računalo.. gdje nema istodobnosti, nego isključivo jedan linearni proces ali dovoljnom brzinom (kratkim prekidima) da izgleda kontinuirano-glatko kao filmska traka umjesto kadrova (statičnih slika)... kao šahovska simultanka, kad majstor igra 'istovremeno' na više ploča, ne igra stvarno istovremeno, nego po potez na svakoj ploči.. na taj način rade klasične app, os, algoritam, programski kod, dok IRQovi služe 'alarm' prekidu-pozivu sistemu da nešto dodatno obradi, tj ovisno što sve u tom trenutku sys traži, ako je tog manje, više se izvršava singlethread app kao konkretan task. Kad imamo više od jednog cpu-a tad oni mogu paralelno skoro neovisno raditi, ali ipak mora postojati jedna glavna programska nit, koja kontrolira-sinkronizira sve tj nasljeđe singlecorea i riješenja koja odavno postoje se i dalje koriste mada sad imamo više jezgara (jednako-pandan kao više cpu-a pa čak i kad spojimo više odvojenih računala u neko supreračunalo-neuronsku mrežu i sl. opet je jedan glavni proces koji kontrolira ostale, kao šef-taskmanger..). .. realno nema 'istodobnog', nego u taktu-clocku na par ghz-a to samo izgleda tako.