Ideje paralelnog računanja i obrade informacija dugo su bile povlastice stručnjaka i prilično značajan problem u smislu provedbe. Posebnu važnost i masovni interes stekli su ne tako davno. Može se tvrditi da je razvoj internetskih tehnologija dao novi zamah, a paralelno programiranje steklo je nove potrošačke kvalitete. To je rezultiralo ne samo očiglednim napretkom tehnologije i programskih jezika. To je zapravo dovelo do suprotnog učinka na razumijevanje paralelnog procesa.
Paralelno računanje: sadržaj i implementacija
Ova ideja dovela je do četiri arhitekture:
Nedostatak arhitektonske ideje: nedostatak semantike
Industrijska primjena paralelizma
Windows i njegovi slični sustavi konsolidirali su tu ideju i zapravo je učinili pravnom normom: paralelizam i razmjena poruka je jedinstvena cjelina za svaki višeprocesorski, multi-core i bitno - za bilo koji informacijski sustav.
Računanje je privatni slučaj obrade informacija. Od paralelnih arhitektura implementiranih hardverom do mobilnih softverskih rješenja: paralelni programski jezici doista su postali vlasništvo povijesti. Suvremeni jezik osigurava stvarne paralelne procese, ali za to ne mora nužno imati posebne operatore u sintaksi ili dodatnimknjižnice za jezik. "Industrijsko" razmišljanje u programiranju, kada je svrha paralelno višestruko programiranje, a ne sredstvo, nije bilo dugo. Na koje temeljne rezultate je vodila, teško je reći. Međutim, nema sumnje da je programiranje, koje je trajalo do razdoblja internetskog programiranja, bilo osnova za izvrsne ideje i dobar potencijal suvremenih jezika i alata.
Prva računala bila su čudovišta, zauzimala četvrtinu nogometnog igrališta i dodjeljivala toliko topline da je bilo lako zagrijavati malo mjesto, a ne trošiti na izgradnju elektrana.
Sljedeća generacija računala - osobna. Ličnosti su bile postavljene na radnu površinu, a mobiteli su se mogli nositi na ramenima. Ličnosti su se brzo promijenile i stekle moderan izgled, pružile život prijenosnim računalima, tabletima i drugim uređajima, a mobiteli su se pretvorili u praktične, multifunkcionalne pametne telefone.
Proizvođač elektroničkih komponenata u potpunosti je iskoristio ideje iz prošlih godina, a paralelno programiranje sada postoji na bilo kojem uređaju, bez obzira na to kako se odnosi na tog ili onoga razvojnog inženjera. Danas je broj procesorskih jezgri, broj procesora, razina tehnologije, paralelizam i funkcionalnost koda kritični čak i za neupućenog korisnika.
Teorija održavanja grafova i masa, kao privatne varijante, proračuni linija i krivulja za vizualni prikazinformacije kao osnova za grafičke kartice, rezultirale su jasnom funkcionalnošću hardverske komponente koja je dobila status i kvalitetu standarda. Možete govoriti o broju jezgri u procesoru uređaja, ali procesor za prikazivanje informacija je dugo bio jedan i bavi se njihovim poslovanjem. Grafička kartica može imati ne samo jedan procesor i ne jednu jezgru, već matematički uređaj koji je ugrađen. Procesor računala jednostavno formulira jednostavne naredbe za prikazivanje informacija ili uzorak iz video memorije, a drugi - za procesor grafičke kartice. Zapravo, matematički proračuni odavno su odvojeni od glavnog procesora matematičkim koprocesorom. U ovom trenutku to je također norma stvari. Zapravo, s obzirom na paralelno programiranje na razini hardvera, možete zamisliti moderno računalo, kao skup paralelnih radnih podsustava, koje developeru pružaju sve što je potrebno za provedbu raznovrsnih ideja distribuiranih i paralelnu obradu informacija.
Od računalstva do obrade informacija
Hardverska komponenta
Sljedeća generacija računala - osobna. Ličnosti su bile postavljene na radnu površinu, a mobiteli su se mogli nositi na ramenima. Ličnosti su se brzo promijenile i stekle moderan izgled, pružile život prijenosnim računalima, tabletima i drugim uređajima, a mobiteli su se pretvorili u praktične, multifunkcionalne pametne telefone.
Matematički aparat
Smatra se da su osnovni hardverski resursi bilo kojeg informacijskog sustava u savršenom stanju i stabilno se razvijaju. Programer može napisati samo kvalitetan kod.
Kod klasičnog programiranja, algoritam je slijed naredbi. U objektno-orijentiranom programiranju, algoritam odlučivanja je skup objekata, od kojih svaki ima svoje podatke i svoje metode.
Uz pomoć metoda objekti međusobno djeluju, a time i kako će ih izvršiti hardverski dio računala(devaysa), programer se najmanje brine. Međutim, logika interakcije objekta je kompetencija programera. Informacijski sustav izgrađen na objektima, u pravilu, je sustav apstrakcija, koji omogućuje različite opcije za stvaranje objekata različitih tipova i odredišta. Opisani na razini apstrakcija, informacijski sustavi mogu pružiti različite kombinacije objekata, uključujući i stvaranje potonjih. Jednostavno rečeno, kada je objektno orijentirano programiranje teško povezati izvršenje objekta kernela ili procesora kako bi se osiguralo paralelno izvršenje. To će značajno usporiti cjelokupni proces. Jedan objekt može postojati u desecima primjeraka, ali to ne znači da bi postojanje svakog od njih trebalo čekati kada se dovrši postojanje prethodnog.
Moderno programiranje Interneta za rješavanje složenih, jedinstvenih zadataka nudi jedino moguće rješenje: ručni rad! Za svakodnevnu i komercijalnu primjenu koriste se brojni i raznovrsni sustavi upravljanja mjestima. Karakteristično obilježje internetskog programiranja:nesigurnost; pluralnost; istovremenost. Prilikom izrade web-mjesta, programer (često tim programera) ne zna koliko će posjetitelja morati prihvatiti web-izvor, ali sigurno zna da web-mjesto istom klijentu mora pružiti minimalno vrijeme odgovora za svaku akciju. Očigledno je da se mjesto postavi na skup poslužitelja ili klastera na teritorijalnoj osnovi, a onda će svaka regija bitiposluživanje određenog poslužitelja. No, moderna stranica ne samo da pruža informacije, nego je i koristi. Na primjer, internetska trgovina ne može trgovati zrakom, a ako je jedan proizvod kupljen u Moskvi, trebao bi nestati iz skladišta za potrošača u Vladivostoku.
Stvaranje distribuirane obrade informacija zapravo znači pružanje paralelnog rada iste funkcionalnosti na različitim poslužiteljima za različite skupine potrošača, pod uvjetom da se radnje potrošača prikazuju u sustavu i da se međusobno ne proturječe. U tom kontekstu, paralelno programiranje dobiva potpuno drugačije značenje. Ako je ranije programer stavio mehanizam paralelizma na vrh ugla, ne vodeći računa o samom zadatku, danas se programer manje brine o tome kako se paralelizam ostvaruje na razini opreme ili alata, zanima ga paralelizam na razini klijenata, odnosno sam zadatak, opseg web -resursu.
Smatra se da je klaster vrsta distribuirane paralelne obrade informacija. To je skup računala povezanih visokobrzinskim komunikacijskim linijama. Karakteristično je da se klaster može sastojati od različitih računala koja se mogu nalaziti na različitim mjestima na planeti, ali po definiciji: klaster je jedna cjelina. Sustavi upravljanja gradilištima temeljeni na klasteru ne dopuštaju izravnu kontrolu komponenata klastera putem računala, ali oni pružaju skriveno, paralelno upravljanje svim procesima na raziniriješeni zadatak. Programer, radeći s klasterima, može planirati i implementirati svoju funkciju paralelne distribuirane obrade informacija. To je vrlo značajan napredak u modernom dizajnu.
Danas je vrlo teško pronaći web-izvor temeljen na statičkim ili dinamičnim stranicama, koje su u cijelosti oblikovane. Moderna web-lokacija je skup dinamičkih stranica koje su popunjene paralelno s AJAX tehnologijom. Trenutna dinamička stranica sastoji se od različitog sadržaja, svaka stranica stranice može se preuzeti samostalno, ovisno o ponašanju posjetitelja. U tom kontekstu, objektno orijentirano programiranje pokazuje da se ne otkrivaju svi njegovi potencijali. Doista, ponašanje korisnika dovodi do zahtjeva poslužitelja za ažuriranjem dijela stranice. Zahtjev je razrađen, stvorena je masa objekata, poslužitelj šalje rezultat natrag. Sljedeći zahtjev je opet masa objekata, rezultat se ponovno vraća. Zapravo, ispada da uz moderan pristup, poslužitelj "ne sjeća" što, kada i gdje je poslao. Na svakom tretmanu ponavlja minimalne potrebne radnje, stvara sve iste objekte sustava.
Programer ne može promijeniti logiku poslužitelja, ali može lako emulirati svoj poslužitelj na svojoj fizičkoj razini. Pojavit će se potpuno nova kvaliteta distribuirane paralelne obrade informacija. Vlastiti poslužitelj će zadržati potreban sustav objekata u trenutnom stanju, što će značajno ubrzati obradu zahtjeva s jedne stranice i sa svih stranica,otvoren za sve internetske prostore za određeni web-izvor.