Ресурсы для высокопроизводительных вычислений в [закрытом] C++

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
16
задан Ned Batchelder 16 July 2010 в 19:35
поделиться

9 ответов

практически весь код HPC, о котором я услышал, или для решения систем линейных уравнений или FFT's. Вот некоторые ссылки для начинания Вас, по крайней мере, в пользовавшихся библиотеках:

  • BLAS - стандартный набор стандартных программ для линейной алгебры - наполняют как умножение матриц
  • LAPACK - стандартный набор высокоуровневых стандартных программ линейной алгебры - материал как LU decomp.
  • ATLAS - Оптимизированная реализация BLAS
  • FFTW - Оптимизированная реализация FFT
  • PBLAS - BLAS для распределенных процессоров
  • SCALAPACK - распределил реализацию LAPACK
  • библиотека MPI - Communications для распределенных систем.
  • PETSc - Масштабируемые нелинейные и линейные решатели (расширяемый пользователем, взаимодействуйте через интерфейс к очень выше)
11
ответ дан 30 November 2019 в 21:29
поделиться

Даже при том, что не FOSS, Intel IPP и библиотеки MKL могут действительно сохранить Вас много времени (и в разработке и во времени выполнения), если необходимо выполнить какую-либо из операций, поддерживаемых этими библиотеками (например: обработка сигналов, обработка изображений, матричная математика). Конечно, это зависит от Вашей платформы, можно ли взять преимущество от них.

(номер: Я не работаю на Intel, но счастливого их клиента, который я.)

4
ответ дан 30 November 2019 в 21:29
поделиться

комплект Trilinos библиотек и пакетов предлагает широкий диапазон библиотек промежуточного программного обеспечения для HPC включая редкие, повторяющиеся линейные решатели; нелинейные решатели; собственные решатели; ОДА & интеграторы DAE включая анализ чувствительности; оптимизация (и агрессивный и черный квадрат); интерфейсы конечного элемента; сетчатые интерфейсы; предварительные формирователи; и т.д. Все эти пакеты разработаны с помощью довольно современных методов C++ (существуют API Python, а также некоторый C и Фортран). Там использовал в очень крупномасштабной параллели (5000 + центральные процессоры) моделирования исключительного последствия (дизайн ядерного оружия) с большим успехом. Эти пакеты предлагают большой комплект возможностей, которые являются намного высокоуровневыми, чем BLAS, и т.д.

3
ответ дан 30 November 2019 в 21:29
поделиться

Проверьте библиотека Eigen Vector/Matrix . API очень изящен, и получающиеся программы сверкают быстро (из-за явной векторизации для архитектуры SSE2)..

2
ответ дан 30 November 2019 в 21:29
поделиться

Первая вещь могла бы читать приблизительно MPI (Интерфейс передачи сообщений) , который является фактическим стандартом в межсоединениях узла HPC.

2
ответ дан 30 November 2019 в 21:29
поделиться

Несмотря на то, чтобы быть 14 + годы, новаторская работа Шаблоны Выражения все еще рассматривается как часть самой исключительной работы C++ в течение многих лет. Быстрый, эффективный, безопасный... Я использовал методы, и они действительно замечательны.

Редактирование: В случае, если вышеупомянутая ссылка остается поврежденной, вот альтернативная ссылка для Шаблонов Выражения . Эта статья DDJ цитирует исходную работу Veldhuizen.

2
ответ дан 30 November 2019 в 21:29
поделиться

Смотрите на Адаптивная коммуникационная среда (ACE) . Это - библиотека шаблонов и объектов для высокопроизводительных приложений в C++. Это имеет большие межплатформенные примитивы для поточной обработки, сетей, и т.д.

1
ответ дан 30 November 2019 в 21:29
поделиться

Независимо от того, что Вы пишете, и сколько Вы разрабатываете для производительности с начала, возможности довольно хороши, она извлечет выгоду из настройки производительности. Обычно, чем больше программа, тем больше это извлечет выгоду. ЭТО является простым, эффективным способом сделать ту настройку. Это основано "на глубоко выборке", техника, которая дает точность диагноза при преуменьшении роли измерения.

Вы могли также посмотреть http://en.wikipedia.org/wiki/Performance_analysis#Simple_manual_technique

1
ответ дан 30 November 2019 в 21:29
поделиться

Высокая масштабируемость - Создание больших, быстрых и надежных веб-сайтов.

http://highscalability.com/

А также:

http: //www.ddj. com / hpc-high-performance-computing /

0
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: