<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D1%83%D0%BB%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%2F%D0%9A1_2020</id>
	<title>Мултипроцесорски системи/К1 2020 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D1%83%D0%BB%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%2F%D0%9A1_2020"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D1%83%D0%BB%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2020&amp;action=history"/>
	<updated>2026-06-04T06:43:18Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D1%83%D0%BB%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2020&amp;diff=4970&amp;oldid=prev</id>
		<title>Дејан Ковачевић: broj -&gt; veličina</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D1%83%D0%BB%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2020&amp;diff=4970&amp;oldid=prev"/>
		<updated>2022-11-01T19:05:35Z</updated>

		<summary type="html">&lt;p&gt;broj -&amp;gt; veličina&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 1. новембар 2022. у 21:05&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;Ред 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Rešenje ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Rešenje ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Trend u procesorskoj tehnologiji je bio smanjenje veličine tranzistora. Smanjenjem veličine tranzistora možemo da spakujemo više tranzistora na istu količinu mesta i na taj način pravimo jače procesore. Nažalost, smanjenjem tranzistora oni menjaju svoje elektronske karakteristike, kola u kojima se oni koriste postaju nestabilnija i postoji ograničenje do kojeg se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;taj broj &lt;/del&gt;tranzistora može smanjivati.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Trend u procesorskoj tehnologiji je bio smanjenje veličine tranzistora. Smanjenjem veličine tranzistora možemo da spakujemo više tranzistora na istu količinu mesta i na taj način pravimo jače procesore. Nažalost, smanjenjem tranzistora oni menjaju svoje elektronske karakteristike, kola u kojima se oni koriste postaju nestabilnija i postoji ograničenje do kojeg se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;veličina &lt;/ins&gt;tranzistora može smanjivati.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Trend je takođe bio povećanje takta procesora, povećavajući broj izvršenih instrukcija po sekundi. Nažalost, kako su procesori rasli tako je raslo i kašnjenje između logičkih kola, i to predstavlja problem za povećanje takta procesora, koje je poslednje decenije usporilo. Takođe se dešava sa povećavanjem takta da se veća energija disipira na tako maloj površini, pa je procesoru potrebno mnogo bolje hlađenje, i tu takođe nailazimo na &amp;#039;&amp;#039;power wall&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Trend je takođe bio povećanje takta procesora, povećavajući broj izvršenih instrukcija po sekundi. Nažalost, kako su procesori rasli tako je raslo i kašnjenje između logičkih kola, i to predstavlja problem za povećanje takta procesora, koje je poslednje decenije usporilo. Takođe se dešava sa povećavanjem takta da se veća energija disipira na tako maloj površini, pa je procesoru potrebno mnogo bolje hlađenje, i tu takođe nailazimo na &amp;#039;&amp;#039;power wall&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Дејан Ковачевић</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D1%83%D0%BB%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2020&amp;diff=4963&amp;oldid=prev</id>
		<title>KockaAdmiralac: Moja rešenja K1 2020</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D1%83%D0%BB%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2020&amp;diff=4963&amp;oldid=prev"/>
		<updated>2022-11-01T17:06:45Z</updated>

		<summary type="html">&lt;p&gt;Moja rešenja K1 2020&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{tocright}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prvi kolokvijum 2020. godine&amp;#039;&amp;#039;&amp;#039; održan je 3. novembra i trajao je 105 minuta. Postavka roka je dostupna sa [http://mups.etf.bg.ac.rs/ispiti/2020-2021/si4mps_k1_20202021.pdf stranice predmeta.]&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Objasniti promenu principa projektovanja procesora koji favorizuju paralelno procesiranje.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Industrija je naišla na tri glavne prepreke pri povećanju kapaciteta procesora, &amp;#039;&amp;#039;power wall&amp;#039;&amp;#039; (struja je skupa, tranzistori su jeftini), &amp;#039;&amp;#039;memory wall&amp;#039;&amp;#039; (operacije sa memorijom su mnogo skuplje od operacija procesora) i &amp;#039;&amp;#039;ILP wall&amp;#039;&amp;#039; (dobici od paralelizma na nivou instrukcija su sve manji). Tu je uočena potreba da se ide ka slabijim višejezgarnim procesorima umesto jačim jednojezgarnim, pošto performanse procesora napreduju mnogo sporije nego ranije i takt više ne može da raste toliko brzo kao ranije, dok se na paralelizaciji programa mogu dobiti mnogo veći dobici u performansama.&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta je pretpostavka &amp;#039;&amp;#039;Gustafson&amp;#039;&amp;#039;-ovog zakona? Izvesti i precizno objasniti ovaj zakon.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;#039;&amp;#039;Gustafson&amp;#039;&amp;#039;-ov zakon pretpostavlja da paralelni deo programa raste sa brojem procesora. To znači da ako za procesor sa &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; jezgara uzmemo da se program izvršava &amp;lt;math&amp;gt;T_p = \alpha T + \left(1 - \alpha\right) T&amp;lt;/math&amp;gt; gde je &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; procenat sekvencijalnog koda u aplikaciji, onda se za procesor sa jednim jezgrom taj isti program izvršava &amp;lt;math&amp;gt;T_1 = \alpha T + \left(1 - \alpha\right) pT&amp;lt;/math&amp;gt;. Ubrzanje je onda &amp;lt;math&amp;gt;S_p = \frac{T_1}{T_p} = \frac{\alpha T + \left(1 - \alpha\right) pT}{\alpha T + \left(1 - \alpha\right) T} = \frac{\alpha T + \left(1 - \alpha\right) pT}{T} = \alpha + \left(1 - \alpha\right) p&amp;lt;/math&amp;gt;. Ovo znači da &amp;lt;math&amp;gt;\lim_{p \to +\infty} S_p = +\infty&amp;lt;/math&amp;gt;, ali ova pretpostavka važi samo za skalabilne aplikacije.&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Opisati tehnološke trendove u procesorskoj tehnologiji i njihove posledice.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
* Trend u procesorskoj tehnologiji je bio smanjenje veličine tranzistora. Smanjenjem veličine tranzistora možemo da spakujemo više tranzistora na istu količinu mesta i na taj način pravimo jače procesore. Nažalost, smanjenjem tranzistora oni menjaju svoje elektronske karakteristike, kola u kojima se oni koriste postaju nestabilnija i postoji ograničenje do kojeg se taj broj tranzistora može smanjivati.&lt;br /&gt;
* Trend je takođe bio povećanje takta procesora, povećavajući broj izvršenih instrukcija po sekundi. Nažalost, kako su procesori rasli tako je raslo i kašnjenje između logičkih kola, i to predstavlja problem za povećanje takta procesora, koje je poslednje decenije usporilo. Takođe se dešava sa povećavanjem takta da se veća energija disipira na tako maloj površini, pa je procesoru potrebno mnogo bolje hlađenje, i tu takođe nailazimo na &amp;#039;&amp;#039;power wall&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Dati uporedni pregled karakteristika programskih modela zajedničke memorije i prenosa poruka. U čemu se razlikuju arhitekture i organizacije sistema koji direktno podržavau&amp;lt;sup&amp;gt;[sic]&amp;lt;/sup&amp;gt; ove modele.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Pregled karakteristika&lt;br /&gt;
! Karakteristika&lt;br /&gt;
! Zajednička memorija&lt;br /&gt;
! Prenos poruka&lt;br /&gt;
|-&lt;br /&gt;
! Pristup memoriji&lt;br /&gt;
| Direktan pristup istoj memoriji&lt;br /&gt;
| Direktan pristup svojoj memoriji, posredstvom poruka pristup tuđim memorijama&lt;br /&gt;
|-&lt;br /&gt;
! Sinhronizacija&lt;br /&gt;
| Moraju se koristiti odvojene strukture (kapaciteti operativnog sistema i hardvera) kako bi se pristup memoriji sinhronizovao&lt;br /&gt;
| Implicitna, jer razmenjuju poruke&lt;br /&gt;
|-&lt;br /&gt;
! Kopiranje podataka&lt;br /&gt;
| Nije potrebno, drugi imaju pristup istoj memoriji kao mi&lt;br /&gt;
| Potrebno, jer jedino tako drugi mogu da dobiju sadržaj naše privatne memorije&lt;br /&gt;
|-&lt;br /&gt;
! Identitet&lt;br /&gt;
| Procesi ne (moraju da) znaju jedan za drugog&lt;br /&gt;
| Procesi znaju jedan za drugog&lt;br /&gt;
|-&lt;br /&gt;
! Arhitektura i organizacija&lt;br /&gt;
| Složenija, postoje UMA i NUMA varijante kako bi procesori delili memoriju između sebe i potrebno je održavati koherenciju keš memorija&lt;br /&gt;
| Manje složena, pošto procesori eksplicitno zahtevaju jedni od drugih memoriju koja im je potrebna, ali je zato softver koji to radi složeniji&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Korišćenjem OpenMP tehnologije, paralelizovati funkciju u prilogu koji računa vrednost određenog integrala korišćenjem Simpsonovog 1/3 pravila. Obratiti pažnju na efikasnost i korektnost paralelizacije. Smatrati da su sve promenljive ispravno deklarisane.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
float simpsons(float ll, float ul, int n) {&lt;br /&gt;
    float h = (ul - ll) / n, x[10], fx[10];&lt;br /&gt;
    for (int i = 0; i &amp;lt;= n; i++) {&lt;br /&gt;
        x[i] = ll + i * h; fx[i] = func(x[i]);&lt;br /&gt;
    }&lt;br /&gt;
    float res = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt;= n; i++) {&lt;br /&gt;
        if (i == 0 || i == n) res += fx[i];&lt;br /&gt;
        else if (i % 2 != 0) res += 4 * fx[i];&lt;br /&gt;
        else res += 2 * fx[i];&lt;br /&gt;
    }&lt;br /&gt;
    res = res * (h / 3);&lt;br /&gt;
    return res;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Sledeće rešenje je pisano pod uslovom da su deklaracije &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt; kao nizove od 10 brojeva simbolične i da &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; zapravo sme da bude veće 10, jer inače paralelizacija ovog programa ne bi imala nikakvog smisla.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; highlight=&amp;quot;3,8&amp;quot;&amp;gt;&lt;br /&gt;
float simpsons(float ll, float ul, int n) {&lt;br /&gt;
    float h = (ul - ll) / n, x[10], fx[10];&lt;br /&gt;
    #pragma omp parallel for default(none) shared(x, fx, ll, ul, n, h)&lt;br /&gt;
    for (int i = 0; i &amp;lt;= n; i++) {&lt;br /&gt;
        x[i] = ll + i * h; fx[i] = func(x[i]);&lt;br /&gt;
    }&lt;br /&gt;
    float res = 0;&lt;br /&gt;
    #pragma omp parallel for default(none) shared(fx) reduction(+:res)&lt;br /&gt;
    for (int i = 0; i &amp;lt;= n; i++) {&lt;br /&gt;
        if (i == 0 || i == n) res += fx[i];&lt;br /&gt;
        else if (i % 2 != 0) res += 4 * fx[i];&lt;br /&gt;
        else res += 2 * fx[i];&lt;br /&gt;
    }&lt;br /&gt;
    res = res * (h / 3);&lt;br /&gt;
    return res;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Da li i na koji način OpenMP podržava ugneždeni paralelizam? Da li je moguće u okviru paralelnog regiona pokrenuti novi paralelni region i pod kojim uslovima?&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
OpenMP podržava ugneždeni paralelizam, u smislu da je moguće ugnezditi paralelni region unutar drugog paralelnog regiona. Pri ugneždavanju će se stvoriti tim niti sa jednom niti u njemu, osim ukoliko ugneždavanje nije omogućeno korišćenjem &amp;lt;code&amp;gt;omp_set_nested(true)&amp;lt;/code&amp;gt; funkcije, ili &amp;lt;code&amp;gt;OMP_NESTED&amp;lt;/code&amp;gt; promenljive okruženja. Neke implementacije ne podržavaju ove metode ugneždavanja, i u njima će ugneždeni tim niti uvek imati jednu nit.&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Neka se posmatra jedna aplikacija za prikupljanje i agregaciju podataka sa interneta. Aplikacija se sastoji od veb tragača (&amp;#039;&amp;#039;web crawler&amp;#039;&amp;#039;) koji prikuplja određene informacije na internetu, a zatim se radi obrada. Nakon merenja performansi sekvencijalne implementacije posmatrane aplikacije pri uobičajenoj upotrebi, dobijeni su sledeći rezultati: aplikacija 45% vremena provodi obavljajući ulazno-izlazne operacije (sekvencijalno prikupljanje podataka iz jednog izvora), a 55% vremena provodi u obradi podataka. Tipično vreme obrade jednog paketa podataka korišćenjem jednog jezgra je 1s.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Ukoliko se aplikacija paralelizuje za izvršavanje na SMP sistemu sa 8 jezgara na 2GHz sa 32GB memorije, navesti formulu za Amdalov zakon i odrediti maksimalno moguće ubrzanje koje se može postići za zadatu aplikaciju.&lt;br /&gt;
# Da li i na koji način može organizovati paralelno izvršavanje sekvencijalnog dela aplikacije, ukoliko paketi sa interneta mogu nezavisno da se obrađuju? Smatrati da paketi imaju neujednačeno vreme obrade i diskutovati moguće načine paralelne obrade.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Formula za Amdalov zakon glasi:&lt;br /&gt;
* &amp;lt;math&amp;gt;T_p = \alpha T_1 + (1 - \alpha) \frac{T_1}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;S_p = \frac{T_1}{T_P} = \frac{1}{\alpha + \frac{1 - \alpha}{p}} = \frac{p}{\alpha p + 1 - \alpha}&amp;lt;/math&amp;gt;&lt;br /&gt;
Kako je nama ovde &amp;lt;math&amp;gt;\alpha = 0.45&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;p = 8&amp;lt;/math&amp;gt; maksimalno ubrzanje koje možemo da postignemo je &amp;lt;math&amp;gt;S_p = \frac{8}{0.45 \cdot 8 + 1 - 0.45} \approx 1.93&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Aplikacija može da održava osam niti, od kojih jedna nit radi primanje podataka preko interneta i kako pristižu paketi ubacuje ih u neku deljenu strukturu i nekom sinhronizacionom primitivom signalizira da ima paketa za obradu (slično &amp;#039;&amp;#039;bag of tasks&amp;#039;&amp;#039; pristupu korišćenjem programskog modela deljene memorije). Ostalih sedam niti mogu da iz ove vreće zadataka preuzimaju pakete za obradu i obrađuju ih paralelno. Bez obzira na to što paketi imaju neujednačeno vreme obrade, niti ne moraju da čekaju jedna na drugu tako da dok jedna nit obrađuje zahtevniji paket ostale niti ne zavise od nje (ne postoji &amp;#039;&amp;#039;bottleneck&amp;#039;&amp;#039;). Više od osam niti verovatno neće ubrzati aplikaciju jer će svesti na klasičan &amp;#039;&amp;#039;time-sharing&amp;#039;&amp;#039; umesto paralelne obrade.&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Мултипроцесорски системи]]&lt;/div&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
</feed>