Главная страница
Навигация по странице:

  • РОЗДІЛ 1 БАГАТОПОТОЧНА АРХІТЕКУРА 1.1 Що таке багатопоточність

  • 1.3 Типи багатопоточності

  • 1.4 Багатопоточність проти багатопроцесорності

  • 1.5 Дрібнозерниста багатопоточність (FGMT)

  • 1.6 Крупнозерниста багатопоточність (CGMT)

  • 1.7 Одночасна багатопотокова обробка (SMT)

  • 1.9 Спекулятивна багатопоточність

  • СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

  • ДОДАТКИ Додаток А

  • 04 Пояснювальна записк_2021. Зміст 21 сторінка 3 розділи


    Скачать 42.14 Kb.
    НазваниеЗміст 21 сторінка 3 розділи
    Дата22.02.2022
    Размер42.14 Kb.
    Формат файлаdocx
    Имя файла04 Пояснювальна записк_2021.docx
    ТипДокументы
    #369975

    ЗМІСТ

    >=21 сторінка

    3 розділи
    1 – огляд літератури (хто проводив дослідження? Які результати отримав?)

    2 – загальна теорія (наприклад: що таке процесор? Які є види, фірми, характеристики?)

    3 – конкретно ваше питання (наприклад: пентіум 4, описати, показати тести)
    ВСТУП 7


    ВСТУП
    Cучасне суспільство часто називають інформаційним. Життя без актуальної, доступної та зручної для сприйняття інформації уявити важко. Роль інформації є суттєвою у будь-яких галузях діяльності людини: від виробництва побутових товарів до пошуків у глибинах Всесвіту.

    У кожному підприємстві виникає проблема, пов’язана з отриманням, зберіганням та обробкою інформації. Для вирішення таких проблем створюються автоматизовані системи для управління та обробки інформації.

    Комплексна автоматизація інформаційних потоків підприємства, організації, відомства, галузі вимагає створення єдиного інформаційного простору для забезпечення можливості:

    • віддаленої роботи працівників із базами даних;

    • вільного доступу до засобів телекомунікації;

    • збереження цілісності даних у загальній базі даних;

    • повнотекстового і реквізитного пошуку інформації;

    • належного захисту інформації;

    • налаштування інтерфейсу на задачі користувачів.

    Основними завданнями, що вирішує автоматизована інформаційна система на підприємстві, є підвищення ефективності виробництва (оптимізації використання наявних виробничих, матеріальних, трудових і фінансових ресурсів); підвищення оперативності і поліпшення якості керування підприємством у цілому (довгострокове, річне й оперативно-виробниче планування, оперативний збір, обробка й аналіз даних); удосконалення структури апарату керування; організація раціональних потоків інформації на підприємств; своєчасна, ефективна і достовірна звітність; автоматизація діловодства і диспетчеризації.

    Корпоративна інформаційна система підтримує автоматизацію функцій управління на підприємстві (в корпорації) і надає інформацію для прийняття управлінських рішень. Це – цілісний програмно-апаратний комплекс, що дозволяє задовольнити як поточні, так і стратегічні потреби підприємства в опрацюванні даних. Обов’язковою вимогою таких інформаційних систем є забезпечення розподіленої роботи клієнтів і можливості віддаленого доступу до необхідних даних. Тому необхідність створення автоматизованої інформаційної системи та її впровадження в інформаційний простір підприємства на даний час є досить актуальною.

    РОЗДІЛ 1
    БАГАТОПОТОЧНА АРХІТЕКУРА


    1.1 Що таке багатопоточність

    Багатопоточність — це функція ЦП (центрального процесора), яка дозволяє двом або більше потокам інструкцій виконуватися незалежно, використовуючи одні й ті ж ресурси процесу. Потік — це самостійна послідовність інструкцій, яка може виконуватися паралельно з іншими потоками, які є частиною одного кореневого процесу.

    Багатопоточність дозволяє виконувати кілька одночасних завдань в рамках одного процесу. Коли науковці обробляють алгоритми машинного навчання, багатопотоковий підхід до програмування може підвищити швидкість у порівнянні з традиційними паралельними програмами багатопроцесорної обробки.

    Незважаючи на те, що операційна система (ОС) швидше перемикається між потоками для активного завдання ЦП, ніж перемикатися між різними процесами, багатопоточність вимагає ретельного програмування, щоб уникнути конфліктів, спричинених умовами перегонів та тупиками.

    Щоб запобігти умовам гонки та тупикам, програмісти використовують блокування, які не дозволяють кільком потокам змінювати значення однієї змінної одночасно.

    32- і 64-розрядні версії Windows використовують багатопотоковість із випередженням, у якій використовується доступний час процесора. Усі потоки отримують однаковий часовий фрагмент і обслуговуються в моделі на основі черги. Під час перемикання потоків контекст вичерпаного потоку зберігається та перезавантажується в наступному потоці в черзі. Це займає так мало часу, що запущені потоки, здається, виконуються паралельно. [1]
    1.2 Як працює багатопоточність

    У програмуванні потік підтримує список інформації, що має відношення до його виконання, включаючи розклад пріоритетів, обробники винятків, набір регістрів ЦП і стан стека в адресному просторі його хостингового процесу. Передача потоків може бути корисною в однопроцесорній системі, оскільки вона дозволяє первинному потоку виконання реагувати на введення користувача, підтримуючи потоки, які виконують тривалі завдання у фоновому режимі, які не вимагають втручання користувача.

    Роздумуючи про те, як виконується багатопоточність, важливо розділити дві концепції паралельної та одночасної обробки.

    Паралельна багатопроцесорність означає, що система фактично обробляє більше одного потоку в даний момент часу. Одночасна обробка означає, що одночасно буде оброблятися лише один потік, але система підвищить ефективність, швидко переміщаючись між двома або більше потоками.

    Ще одна важлива річ, яку слід зазначити, це те, що для практичних цілей комп’ютерні системи, створені для звичайних користувачів, можуть мати паралельні або одночасні системи з однаковим кінцевим результатом – процес сприймається користувачем як паралельний, оскільки комп’ютер працює дуже швидко, опрацьовуючи процеси за мікросекунди.

    Еволюція багатоядерних систем означає, що існує більше паралельності, що зменшує потребу в ефективній одночасній обробці. Розробка швидших і потужніших мікрочіпів і процесорів на цьому кінці розширення закону Мура є важливою для цього типу апаратного проектування та інженерії в цілому.

    Крім того, велика частина паралельної або одночасної обробки доступна відповідно до примх операційної системи. Таким чином, для середньостатистичного користувача паралельний або одночасний процес, або процеси, які змішані, сприймаються як паралелізм у реальному часі. [1]
    1.3 Типи багатопоточності

    Різні типи багатопоточності застосовуються різними версіями операційних систем і пов’язаних з ними елементів керування, які розвинулися в обчислювальній техніці: наприклад, у багатопоточності з випередженням перемикання контексту контролюється операційною системою. Потім є кооперативна багатопотокова робота, в якій перемикання контексту контролюється потоком. Це може призвести до проблем, таких як тупикові блокування, якщо потік заблокований в очікуванні звільнення ресурсу.

    Багато інших типів моделей для багатопотокової обробки також застосовуються, наприклад, моделі з грубозернистим, перемежованим і одночасним багатопотоковим процесом визначають, як потоки координуються та обробляються. Інші варіанти багатопоточності включають моделі багато до багатьох, багато до одного та один до одного. Деякі моделі використовуватимуть такі поняття, як рівні часові фрагменти, щоб спробувати розподілити виконання між потоками. Тип багатопоточності залежить від самої системи, її філософії та її побудови, а також від того, як інженери спланували функціональність багатопоточності в ній.

    У моделі активної/пасивної системи один потік залишається чутливим до користувача, а інший потік працює над довгостроковими завданнями у фоновому режимі. Ця модель корисна для просування системи, яка виглядає паралельно з точки зору користувача, що підводить нас до важливої точки в оцінці процесів, таких як мікропотоки, з обох боків: з точки зору інженера та з точки зору кінцевого користувача. [1]
    1.4 Багатопоточність проти багатопроцесорності

    У програмуванні потік інструкцій називається потоком, а екземпляр комп’ютерної програми, що виконується, називається процесом. Кожен процес має свій власний простір пам’яті, де він зберігає потоки та інші дані, необхідні для виконання процесу.

    У той час як багатопоточність дозволяє процесу створювати більше потоків для покращення швидкості реагування, багатопроцесорність просто додає більше ЦП для збільшення швидкості. [1]
    1.5 Дрібнозерниста багатопоточність (FGMT)

    Тонка багатопоточність перемикається між потоками за фіксованим тонким розкладом, зазвичай обробляючи інструкції з іншого потоку на кожному циклі, що спричиняє чергування виконання кількох потоків.

    Перемежування часто виконується круговим способом, пропускаючи будь-які потоки, які зупиняються через неправильне прогнозування розгалужень, промах кешу чи будь-яку іншу причину. Але політика планування потоків не обмежується поетапною (круговою) моделлю, також можна застосувати іншу політику планування.

    Хоча FGMT може приховати втрати продуктивності через зупинки, викликані будь-якою причиною, існує два основних недоліки підходу FGMT:

    • FGMT жертвує продуктивністю окремих потоків.

    • Потрібно багато потоків, щоб приховати затримки, що також означає багато файлів реєстру.

    Було кілька систем, що використовували FGMT, включаючи Denelcor HEP і Tera MTA (обидві створені Бертоном Смітом). З огляду на перераховані вище недоліки, FGMT як основа сьогодні не популярна. [2]
    1.6 Крупнозерниста багатопоточність (CGMT)

    Крупнозерниста багатопоточність не вимкне виконуваний потік доти, доки він не досягне ситуації, яка запускає перемикач. Така ситуація виникає, коли виконання інструкції досягає або операції з довгою затримкою, або явної додаткової операції перемикання. CGMT був винайдений як альтернатива до FGMT, тому він не повторить основний недолік FGMT: серйозного обмеження продуктивності одного потоку.

    CGMT має найбільший сенс на впорядкованому процесорі, який зазвичай зупиняє конвеєр у разі промаху кешу (використовуючи підхід CGMT, швидше ніж зупинка, конвеєру заповниться готовими інструкціями від альтернативних потоків).

    Оскільки інструкції, які слідують за відсутніми інструкціями, можуть уже бути в конвеєрі, їх потрібно забрати з нього. І так само, інструкції з нового потоку не досягнуть стадії виконання, доки не будуть пройдені попередні етапи конвеєру. Тому зазвичай CGMT потрібен короткий конвеєр для хорошої впорядкованої продуктивності.

    Через штраф за перемикання потоків, CGMT корисний лише для зменшення штрафу за зупинки високої вартості, де штраф за перемикання потоків є незначним порівняно з часом зупинки. Тоді він виявляється найкращим для CGMT слабкість якої полягає у тому, що вона не може терпіти коротких зупинок. Це обмежує його здатність покращувати пропускну здатність, і CGMT дійсно страждає від погіршення продуктивності, коли інструкції з короткими затримками виникають часто. [2]
    1.7 Одночасна багатопотокова обробка (SMT)

    Одночасна багатопотокова обробка — це дрібнозерниста багатопотокова робота з динамічно змінним перемежуванням інструкцій з кількох потоків через спільні ресурси виконання. Мотивація SMT полягає в тому, що, хоча FGMT і CGMT покращують використання ресурсів, перекриваючи затримку інструкції з одного потоку виконанням іншого потоку, все ще залишається багато прогалин.

    SMT динамічно й гнучко розподіляє функціональні блоки між кількома потоками. Конвеєр поділено на дві частини: передню (перші два етапи із сірою тінню) і задню (стадії конвеєра, які закриті потоками). Незалежно від різниці між різними реалізаціями SMT, інструктції з кількох потоків мають бути об’єднані до етапу конвеєра, де ресурси спільно використовують. У нашому прикладі реплікуються ПК на стадії отримання та регістрова карта на стадії декодування. Архітектурні регістри перейменовуються, щоб використовувати загальний пул фізичних регістрів, і один і той самий архітектурний регістр з різних потоків зіставляється з різними фізичними регістрами, тому інструкції з кількох потоків можна змішувати в шляху даних, не плутаючи джерела та призначення в потоках. Це призводить до розуміння того, що багатопотоковість може бути побудована на основі процесора, який вийшов з ладу.

    Етапи конвеєра від серверної частини говорять про іншу історію. Ці етапи не є потоковими, оскільки вони не вимагають знань SMT. Наприклад, на етапі виконання виконавчі блоки не знають різниці між одним потоком від іншого, коли вони виконують інструкції. Інструкція - це просто інструкція для виконавчих блоків, незалежно від того, до якого потоку/логічного процесора вона належить.

    Як згадувалося на початку цієї глави, крім реплікації деяких ресурсів, група ресурсів повинна бути розділена між потоками, а механізми розподілу поділяються на наступні два типи.

    По-перше, статично розділений ресурс просто розкладається порівну стільки частин, скільки в ньому логічних процесорів.

    По-друге, динамічно розділений ресурс дозволяє будь-якому логічному процесору використовувати будь-який запис цього ресурсу, але він обмежує кількість записів, які може використовувати будь-який логічний процесор.

    З точки зору кожного логічного процесора та потоку, цей вид динамічного розбиття має той самий ефект, що й фіксований: він обмежує кожен логічний процесор половиною черги. Однак, з точки зору фізичного процесора, є принципова відмінність. У цьому прикладі, хоча черга планування є сам усвідомлюючи відмінності між інструкціями з одного потоку та іншого, планувальник, як спільний ресурс, який не знає SMT, витягує інструкції з черги, як ніби вся черга містить один потік інструкцій.

    Як і FGMT, SMT допускає всі затримки (як тривалі зупинки, так і короткі зупинки), але він також жертвує продуктивністю деяких окремих потоків. [2]
    1.8 SMT і CMP

    Мікропроцесори (CMPs) об’єднує кілька процесорних ядер на одному чіпі, що полегшує фізичні проблеми упаковки та з’єднання кількох процесорів. Такий тип тісної інтеграції зменшує передачу сигналів поза чіпом і призводить до зменшення затримок між процесорами та синхронізації.

    І CMP, і SMT є методами підвищення пропускної здатності процесорів загального призначення за допомогою багатопотокової обробки. SMT — це техніка, яка дозволяє кільком незалежним потокам спільно використовувати групу ресурсів виконання. Це покращує використання ресурсів виконання процесора та забезпечує стійкість до затримок. CMP використовують відносно прості однопотокові ядра процесора для використання паралельності на рівні потоків з однією програмою, виконуючи кілька потоків паралельно на кількох ядрах процесора.

    З архітектурної точки зору SMT є більш гнучким. Однак внутрішня складність архітектури SMT призводить до наступних проблем:

    1) збільшення площі матриці;

    2) необхідність більш тривалого циклу;

    Оскільки архітектура SMT складається з багатьох тісно взаємопов'язаних компонентів, включаючи різні буфери, черги та файли реєстрів. Для з’єднання цих блоків необхідні дроти введення-виводу, і затримка, пов’язана з цими проводами, може затримати критичний шлях ЦП.

    З іншого боку, архітектура CMP використовує відносно простий однопотоковий процесор (порівняно зі складною апаратною конструкцією SMT), тому вона забезпечує досить короткий час циклу. Крім того, CMP набагато менш чутливий до поганого розташування даних і поганого керування зв'язком, оскільки затримки міжядерного зв'язку нижчі. З точки зору програмного забезпечення, CMP є ідеальною платформою для виконання багатопрограмних робочих навантажень або багатопоточних програм. Архітектура CMP може призвести до втрати ресурсів, якщо програму неможливо ефективно розкласти на потоки або недостатньо TLP.

    Оскільки і SMT, і CMP мають свої переваги і недоліки, було проведено багато досліджень для покращення обох архітектур, включаючи комбіновану архітектуру CMP/SMP, а також спекулятивну багатопотоковість. Ми обговоримо спекулятивну багатопотоковість у наступному розділі. [2]
    1.9 Спекулятивна багатопоточність

    Оскільки велика кількість програм демонструє незначний паралелізм на рівні потоків, як апаратне, так і програмне забезпечення стикаються з проблемою виявлення адекватного TLP в цьому класі програм, щоб отримати переваги від багатопоточних архітектур.

    Спекулятивна багатопоточність (SpMT) є спробою дослідити TLP для послідовних додатків, особливо для нечислових додатків. SpMT звільняє виконання потоків від суворого семантичного порядку, представленого в програмі, тому потік, що виконується на одному процесорі, може залежати від керування або даних від іншого потоку, який все ще виконується на іншому процесорі.

    Спекулятивне паралельне виконання потоків у SpMT може призвести до порушення залежності, також визнаного помилковою спекуляцією. Апаратне забезпечення відстежує логічний порядок між потоками, щоб виявити будь-яке порушення залежності. Якщо виявлено помилку, пов’язані потоки потрібно відкотити та повторно виконати.

    Існує багато проблем для моделі SpMT, зокрема:

    • Належний механізм виявлення хибних спекуляцій

    • Правильний механізм відкату (частково чи повністю?)

    • Як ефективно ідентифікувати потоки

    • Як розрахувати переваги відповідно до накладних витрат на запуск потоку

    і вартість помилкових спекуляцій

    Дослідження показують, що потенційне підвищення продуктивності для моделі SpMT є значним. Тепер перед розробниками апаратного та програмного забезпечення стоїть завдання перетворити потенційний виграш у справжнє покращення. [2]

    5.5 Розрахунок ціни

    Ціна формується за рахунок наступних компонентів:
    Ц=С+П,
    де С – собівартості програмного продукту;

    П – прибуток, який беремо в розмірі 35 % від собівартості.

    Підставляючи значення у формулу, визначаємо ціну програмного продукту.


    ВИСНОВКИ
    Перед Волинською дирекцією українського державного підприємства поштового зв’язку «Укрпошта» постало питання ефективного впровадження інформаційних технологій задля забезпечення своєчасного вироблення і прийняття управлінських рішень, вивільнення частини робочого часу працівників, поліпшення якості і оперативності управління, його дієвості тощо. Було здійснено аналіз потреб підприємства та розробку і впровадження автоматизованої інформаційної системи управління в інформаційний простір на рівні дирекції підприємства. Це дозволило вести контроль за роботою відділень поштового зв’язку, отримувати та відправляти актуальну на даний час інформацію та дані, виправляти помилки в роботі автоматизованого робочого місця відділення зв’язку та вести контроль за знаннями працівників підприємства.

    СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ


    1. Джастін Штольцфус – Multithreading https://www.techopedia.com/definition/24297/multithreading-computer-architecture

    2. Лін Гао Багатопотоковість

    https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.116.9781&rep=rep1&type=pdf

    3. З. Х. Ду, Ч. Ч. Лім, X. F. Li, C. Yang, Q. Zhao та T. F. Ngai. А

    Платформа компіляції, орієнтована на витрати, для спекулятивного розпаралелювання послідовних програм. In Proceedings of Conference on Programming Language Design and Implementation, 2004.

    4. Р. А. Дуа і Б. Лоханде. Порівняльне дослідження smt і cmp

    мультипроцесори. Звіт про проект, ee8365.

    5. В. Крішнан і Дж. Торреллас. Апаратна та програмна підтримка спекулятивного виконання послідовних двійкових файлів на мікросхемі-мультипроцесорі. У матеріалах 12-ї Міжнародної конференції з суперкомп’ютерів, стор

    85–92. ACM Press, 1998.

    6. Т. Осава, М. Такагі, С. Кавахара та С. Мацусіта. Піно: спекулятивна багатопотокова архітектура процесора, що використовує паралелізм

    широкий діапазон зернистості. In Proceedings of the 38th International

    Симпозіум з мікроархітектури (MICRO’05), 2005.


    ДОДАТКИ

    Додаток А

    Лістниг модуля тестування
    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;




    написать администратору сайта