глянута схема проектування та реалізації паралельних обчислень дає спосіб розуміння паралельних алгоритмів і програм. На стадії проектування паралельний метод може бути представлений у вигляді графа «підзадачі - повідомлення», який являє собою не що інше, як укрупненное (агреговане) подання графа інформаційних залежностей (графа «операції - операнди»). Аналогічно на стадії виконання для опису паралельної програми може бути використана модель у вигляді графа «процеси - канали», в якій замість підзадач використовується поняття процесів, а інформаційні залежності замінюються каналами передачі повідомлень. Додатково на цій моделі може бути показано розподіл процесів по процесорах обчислювальної системи, якщо кількість підзадач перевищує число процесорів - див. Рис. 6.
Рис. 6. Модель паралельної програми у вигляді графа «процеси - канали»
Використання двох моделей паралельних обчислень дозволяє краще розділити проблеми, які проявляються при розробці паралельних методів. Перша модель - граф «підзадачі - повідомлення» - дозволяє зосередитися на питаннях виділення підзадач однаковою обчислювальної складності, забезпечуючи при цьому низький рівень інформаційної залежності між подзадачами. Друга модель - граф «процеси - канали» - концентрує увагу на питаннях розподілу підзадач по процесорах, забезпечуючи ще одну можливість зниження трудомісткості інформаційних взаємодій між подзадачами за рахунок розміщення на одних і тих же процесорах інтенсивно взаємодіючих процесів. Крім того, ця модель дозволяє краще аналізувати ефективність розробленого паралельного методу і забезпечує можливість більш адекватного опису процесу виконання паралельних обчислень.
Дамо додаткові пояснення для використовуваних понять в моделі «процеси - канали»:
під процесом будемо розуміти виконувану на процесорі програму, яка використовує для своєї роботи частина локальної пам'яті процесора і містить ряд операцій прийому/передачі даних для організації інформаційної взаємодії з іншими виконуваними процесами паралельної програми;
канал передачі даних з логічної точки зору може розглядатися як чергу повідомлень, в яку один або декілька процесів можуть відправляти пересилаються дані і з якою процес-адресат може витягувати повідомлення, що відправляються іншими процесами.
У загальному випадку, можна вважати, що канали виникають динамічно в момент виконання першої операції прийому/передачі з каналом. За ступенем спільності канал може відповідати одній або декільком командам прийому даних процесу-одержувача; аналогічно, при передачі повідомлень канал може використовуватися однією або декількома командами передачі даних одного або декількох процесів. Для зниження складності моделювання та аналізу паралельних методів будемо припускати, що ємність каналів є необмеженою і, як результат, операції передачі даних виконуються практично без затримок простим копіюванням повідомлень в канал. З іншого боку, операції прийому повідомлень можуть призводити до затримок (блокувань), якщо запитувані з каналу дані ще не були відправлені процесами - джерелами повідомлень.
Слід зазначити важливе достоїнство розглянутої моделі «процеси - канали» - в ній проводиться чіткий поділ локальних (виконуваних на окремому процесорі) обчислень і дій з організації інформаційної взаємодії одночасно виконуваних процесів. Такий підхід значно знижує складність аналізу ефективності паралельних методів і істотно спрощує проблеми розробки паралельних програм.
3.2 CASE-системи
В останні роки на світовому ринку програмних продуктів з'явилося багато програмних засобів, які називаються CASE-системами або CASE-засобами. Слово CASE являє собою скорочення від Computer Aided Software Engineering. У російськомовній літературі немає відповідного загальноприйнятого терміну. З нашої точки зору, є два найбільш відповідних оригіналу і призначенням CASE-систем переказу: `` Програмна інженерія, підтримувана комп'ютером і менш буквальний, але більш відповідає суті переклад `` Засоби розробки програм за допомогою комп'ютера raquo ;. Теоретичне осмислення цього явища і його місця в технології програмування знаходиться на дуже ранніх стадіях.
У сучасних умовах створення складних програмних додатків неможливе без використання таких систем автоматизованого конструювання ПЗ. CASE-системи істотно скорочують терміни і витрати розробки, надаючи допомогу інженеру у проведенні рутинних операцій, полегшуючи його роботу на самих різних етапах життєвого циклу розробки.
Розглянемо спектр значень, фактично покриваються терміном CASE-система, а так само його співвідношення з класичним терміном «середу програмування» і «середовище розробки програм». Ми побачимо, що при буквальному розгляді CASE-системою можна назвати всяку програмну систему, що допомагає в розробці програм, включаючи будь трансл...