Charm++: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
стиль
Рядок 1:
{{Infobox programming language|name=Charm++|logo=|logo caption=|screenshot=|screenshot caption=|file ext=|paradigm=Кероване повідомленнями [[Паралельні обчислення|паралельне програмування]], migratable objects, [[об'єктно-орієнтоване програмування]]|released={{Start date|late 1980s}}|designer=[[Laxmikant Kale]]|developer=[http://charm.cs.uiuc.edu Parallel Programming Laboratory]|latest release version=6.7.1|latest release date={{start date and age|2016|04|20}}|latest preview version=|latest preview date=<!-- {{start date and age|YYYY|MM|DD}} -->|typing=|implementations=|dialects=|influenced by=|influenced=|programming language=[[C++]], [[Python scripting language|Python]]|platform=[[Cray]] [[Cray XC40|XC]], [[Cray XK7|XK]], [[Cray XE6|XE]], [[Cray XT6|XT]], [[Blue Gene|IBM Blue Gene L/P/Q]], [[Infiniband]], [[Transmission Control Protocol|TCP]], [[User Datagram Protocol|UDP]], [[Message Passing Interface|MPI]]|operating system=[[Linux]], [[Windows]], [[OS X]]|license=|website=http://charmplusplus.org|wikibooks=}}
'''Charm++''' − це [[Об'єктно-орієнтоване програмування|об'єктно-орієнтована мова програмування]], яка є надмножиною [[C++]]. Розроблена Лабораторією Паралельних Обчислень [[Іллінойський університет|Університету Іллінойсу]]. Charm++ була розроблена з метою підсилення продуктивності розробників шляхом надання високорівневих абстракцій для паралельних програм. В той же час вона забезпечує хорошу продуктивність, яка покладена в основу платформ апаратного забезпечення. Програми, які написані на Charm++, діляться на керовані повідомленнями об'єкти&nbsp;— чари (''chares''), які взаємодіють між собою. Коли розробник викликає метод об'єкта, середовище виконання Charm++ відправляє до нього повідомлення. Такий об'єкт може розміщуватися в локальному або віддаленому процесорі паралельних обчислень. Повідомлення запускає на виконання код в межах чара, що забезпечує асинхронність операцій.
 
Чари можуть бути організовані як колекції (масиви чарів), в той же час, повідомлення можна відправляти індивідуально кожному чару або всій колекції одночасно.
 
Чари в програмі співставляютьсязіставляються з фізичними процесорами за допомогою адаптивного середовища виконання. СпівставленняЗіставлення чарів з процесорами є прозорим для розробника, що дозволяє середовищу виконання динамічно змінювати їх призначення для процесора під час виконання програми, це надає паралельним програмам такі переваги: можливість робити виміри на основі балансування навантаження, відмовостійкість, автоматичне створення точок відновлення, здатність звужувати та розширювати набір процесів для паралельної програми.
 
Інструменти моделювання молекулярної динаміки {{нп|NAMD||en|NAMD}} та {{нп|OpenAtom||en|OpenAtom}} реалізовані за допомогою Charm++.
Рядок 11:
 
== Історія ==
Мова Charm++ була розроблена в Лабораторії Паралельних Обчислень [[Іллінойський університет|Університету Іллінойсу]], Вені Шу (Wennie Shu) та Кевіном Немурою (Kevin Nomura) в співробітництві з Лаксімікент Кейлом (Laxmikant Kale). Другий прототип мови з назвою Chare Kernel(2.0) був написаний Манішом Гуптою ([[Manish Gupta]]). Charm(3.0) мала суттєві зміни в проектуванні. Новий транслятор написав [[Nimish Shah]]. Реалізація Charm++ була зроблена [[Sanjeev Krishnan]]. Charm(4.0) включав в себе Charm++. Реліз був випущений в 1993. Charm(4.5) розробили Attila Gürsoy, Sanjeev Krishnan, [[Milind Bhandarkar]], [[Joshua Yelon]], [[Narain Jagathesan]], and Laxmikant Kale. Цією ж командою була розроблена Charm(4.8), що включала '''Converse'''&nbsp;— паралельне середовище виконання, яке дозволяє взаємодіяти між модулями, які написані, використовуючи різні парадигми, в межах одного додатку. Після цього середовище виконання Charm++ було переорієнтовано на Converse. Синтаксичні розширення забрали, а натомість розробили простий інтерфейс транслятора Charm++, котрий став мовою. Версія 5.8 ревізії 1 включала в себе:
# повністю переписане середовище виконання та інтерфейс транслятора
# нові можливості (наприклад: масиви чарів)