Програмування масивівПрограмування масивів — засіб в інформатиці, що дозволяє застосовувати операції до всього набору значень одночасно. Зазвичай використовується в наукових та інженерних задачах. Сучасні мови програмування, які підтримують програмування масивів (також відомі як векторні або багато-вимірні мови), розробили спеціально для узагальнення операцій над скалярами для прозорого застосування до векторів, матриць і масивів вищої розмірності. До них належать APL, J, Fortran, MATLAB, Analytica , Octave, R, Cilk Plus, Julia, Perl Data Language (PDL) . У цих мовах операцію, яка працює над цілими масивами, можна назвати векторизованою операцією,[1] незалежно від того, чи виконується вона на векторному процесорі, який реалізує векторні інструкції. Операції програмування масивів стисло виражають ідеї щодо маніпулювання даними. Рівень стислості може бути вражаючим: можна знайти такі однорядкові програми, які вимагають кількох сторінок об'єктно-орієнтованого коду з циклами. ВтіленняПрограмування масивів дуже добре підходить для неявного розпаралелювання . Крім того, Intel і сумісні ЦП, розроблені та вироблені після 1997 року, містили різні розширення набору інструкцій, починаючи від MMX і закінчуючи SSSE3 і 3DNow!, які містять базові операції SIMD. В 2020-х роках з'явився AVX-512, що перетворило сучасні ЦП на векторні процесори. Програмування масивів відрізняється від паралельної обробки тим, що один фізичний процесор виконує операції над групою елементів одночасно, тоді як паралельна обробка має на меті розділити більшу проблему на менші (MIMD), які вирішуються по частинах багатьма процесорами. На 2023 рік процесори з кількома ядрами та графічні процесори з тисячами загальних обчислювальних ядер поширені на персональних комп'ютерах. Мови
A := A + B;
A ← A + B
A = A + B;
Ділення матриць і синтаксисОператор лівого ділення квадратної матриці використовується для розв'язку СЛАР
де Для довільних матриць псевдообернення
Проте ці рішення не є ані лаконічнішими, ані ефективнішими з точки зору обчислень. Бо виконуються дві операції (обернення та множення), замість однієї (ділення зліва).
Оскільки множення матриць не комутативне, MATLAB вводить оператор лівого ділення
Це приклад не лише стислого запису, але й ефективнішого обчислення, який реалізований в бібліотеках ATLAS та LAPACK.[3] БібліотекиВикористання спеціалізованих і ефективних бібліотек для стисліших абстракцій також поширене в інших мовах програмування.
Примітки
|
Portal di Ensiklopedia Dunia