Терміни статичного зв’язку та динамічного зв'язку не мають прямого відношення до паралельних обчислень, хоча вже досить давно відомо, що динамічне завантаження (на відміну від завантаження статично складеного виконуваного файлу) не дуже масштабується в мережевих файлових системах через велику кількість Навантаження метаданих, викликане динамічним завантажувачем, що шукає шляхи завантаження для цільових бібліотек.
Важко зробити загальні твердження про те, чи статичні чи динамічні бібліотеки кращі в обчисленні з високою продуктивністю. Безумовно, для більшості суперкомп'ютерних застосувань це простіше і надає перевагу статичному зв’язку. Чому це? У поточному поколінні суперкомп'ютерів зазвичай працює лише одна робота на вузол, що сильно знижує будь-які переваги зменшеного споживання пам'яті за рахунок спільних бібліотек. Крім того, наукові обчислювальні коди, як правило, не дуже складні з точки зору мовних особливостей або дизайну програми, і вони рідко використовують мовні функції, які потребують динамічного завантаження (наприклад, модулі плагінів). Динамічні бібліотеки мають додаткові труднощі бути набагато менш портативними в операційних системах, ніж статичні бібліотеки.
Як наслідок всього цього, більшість систем HPC використовують статичну компіляцію, коли вона доступна. Статичні бібліотеки розглядаються як швидші, простіші в установці та обслуговуванні і, як правило, більш надійні. Коди HPC, засновані на Python, є одним з винятків цього, але вони все ще піддаються проблемам продуктивності, пов’язаним з динамічним завантаженням (кілька користувачів на scicomp насправді працюють над цією проблемою зараз!).
Коли ви вибираєте статичне порівняно з динамічним зв’язком, вам слід врахувати, як і де буде розгорнуто ваш код, чи можуть змінитись або переміститися базові бібліотеки та характеристики продуктивності вашої мережевої файлової системи. Ви також повинні оцінити, чи потрібне вам динамічне посилання, або через бібліотечну залежність, або для взаємодії з динамічною мовою сценарію, такою як Python.
Single Dynamic Library - термін, специфічний для Intel. Це стосується упаковки їх динамічних бібліотек в єдину мета-бібліотеку для спрощення процесу зв’язування. Якщо ви будете використовувати динамічні зв'язки з бібліотеками Intel, ця форма, мабуть, є кращою, якщо ви не робите щось складне.
-mkl
прапор, який повинен усунути необхідність використання радника для посилань у більшості випадків.