Blitz++
Blitz++ — высокопроизводительная библиотека функций векторной математики, написанная на C++.
Blitz++ | |
---|---|
Тип | Библиотека |
Разработчик | Vision and Image Processing Lab |
Написана на | C++ |
Операционная система | Кроссплатформенное программное обеспечение |
Последняя версия | 0.10 (4 июля 2012 года) |
Репозиторий | github.com/blitzpp/blitz |
Лицензия | LGPLv3+ |
Сайт | blitz.sourceforge.net |
ОсобенностиПравить
Данная библиотека была разработана для выполнения научных расчетов и обеспечивает производительность наравне с Fortran 77/90.
Blitz++ использует шаблоны C++, которые обеспечивают компилятор метаинформацией, позволяющей получить на выходе хорошо оптимизированный код. В результате этого, обеспечивается высокая скорость выполнения математических операций над массивами данных, без ущерба для синтаксиса программы, чем не могут похвастаться другие подобные математические программные системы. Библиотека Blitz++ признана пионером в использовании этого способа метапрограммирования.[1]
В библиотеке поддерживаются операции с матрицами, тензорами и векторами. Имеется реализация генератора случайных чисел. Размерность для массивов ограничена 11-ю измерениями. При этом, поддерживается сортировка массивов как в стиле C, так и в стиле Fortran.[2]
История развитияПравить
Проект начался в Vision and Image Processing Lab — одной из лабораторий кафедры проектирования инженерных систем университета Ватерлоо и был поддержан как часть en:Natural Sciences and Engineering Research Council при программе PGS A.
В начале 1998-х Future Technologies Group в en:National Energy Research Scientific Computing Center предоставила доступ к своим суперкомпьютерам для тестирования производительности и бенчмаркинга. В дальнейшем, разработка библиотеки продолжилась в Extreme Computing Laboratory Индианского университета в Блумингтоне.
В настоящее время, работы над библиотекой ведутся в Open Systems Laboratory Индианского университета в Блумингтоне.
ПроектыПравить
Библиотека Blitz++ используется в нескольких научных проектах, таких как, например:
- Sunrise Архивная копия от 3 октября 2013 на Wayback Machine — расчет поглощения и рассеяния света для нужд астрофизики
- C++QED — открытый фреймворк для симуляции динамики квантовых процессов[3]
- Helios Архивная копия от 6 ноября 2013 на Wayback Machine — гирокинетический симулятор поведения плазмы в ядре установки типа Токамак
ПримечанияПравить
- ↑ Abrahams D., Gurtovoy A. C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. — 5. — Addison Wesley Professional, 2005. — 373 p. — (The C++ in-Depth Series). — ISBN 0-321-22725-5.
- ↑ Blitz++ 0.1 alpha 04b review (неопр.). Дата обращения: 25 сентября 2013. Архивировано 27 сентября 2013 года.
- ↑ Сайт проекта C++QED (неопр.). Дата обращения: 25 сентября 2013. Архивировано 3 октября 2013 года.
См. такжеПравить
- Matrix Template Library (MTL)
- Basic Linear Algebra Subprograms (BLAS)
- Iterative Template Library (ITL)
СсылкиПравить
- Домашняя страница проекта Архивная копия от 5 ноября 2013 на Wayback Machine (англ.) (c 3 июня 2011 года сайт на частичной реконструкции)
- Страница проекта на Архивная копия от 5 ноября 2013 на Wayback Machine SourceForge