Эффективность параллельных вычислений Abaqus, Ansys и Simmakers

В настоящее время всё большую популярность в области высокопроизводительных вычислений приобретают аппаратные средства, основанные на архитектурах для параллельных вычислений.

Эффективность использования аппаратных средств с параллельной архитектурой в решении инженерных задачах, таких, как компьютерное моделирование физических процессов, не имеет линейной зависимости от количества процессоров. Ошибочно полагать, что при решении сложных инженерных задач перенос расчета с одного ядра CPU на четыре ядра даст четырехкратный прирост скорости. Аналогично, перенос вычислений на графические ускорители с сотнями ядер не дает стократного прироста в скорости.

В первую очередь ограничение в приросте скорости при использовании параллельных расчетов налагают вычислительные алгоритмы. Алгоритмы, обладающие низкой степенью параллелизации, нерационально использовать на суперкомпьютерах и высокопроизводительных рабочих станциях. Понятие «эффективность параллелизации» поясняется законом Амдала, согласно которому если хотя бы 1/10 часть программы исполняется последовательно, то невозможно получить более 10 кратного ускорения вне зависимости от числа используемых вычислительных ядер.

Яркими примерами ограниченности эффективности распараллеливания алгоритмов для решения инженерных задач являются относительно слабые результаты мировых лидеров в области программного обеспечения для инженерного анализа (CAE) – компаний Abaqus и Ansys.

Читать далее

Как устранить ошибку пробела в имени пользователя при компиляции проекта NVIDIA CUDA Runtime в среде Microsoft Visual Studio

Предположим, что на компьютере разработчика установлена среда Microsoft Visual Studio версии 2008, 2010 или 2012 и NVidia CUDA Toolkit 5.5. Если имя пользователя Windows содержит пробел, то компиляция шаблонного проекта NVIDIA CUDA Runtime в Visual Studio может завершиться неудачей. Как правило, это ошибка «Could not setup the environment for Microsoft Visual Studio using …» со ссылкой на файл vcvars32.bat или vsvars32.bat, либо «спотыкание» на пробеле в названии домашней папки пользователя (см. снимки экрана ниже).

Ошибки компиляции проекта CUDA Runtime в Microsoft Visual Studio 2012

Ошибка компиляции проекта CUDA Runtime в Microsoft Visual Studio 2008

Ошибки компиляции проекта CUDA Runtime в Microsoft Visual Studio 2012. Error D8022: cannot open ‘C:\Users\Yury’

Более подробные сведения об ошибках можно увидеть в логе компиляции, если добавить опцию --verbose в командную строку NVCC (драйвера компиляции CUDA С/C++).

Для устранения проблемы можно воспользоваться любым из нижеперечисленных способов:

  1. Создать нового пользователя с именем без пробела (аккуратно с данными старого пользователя!),
  2. Изменить пользовательскую переменную окружения TEMP на путь, не содержащий пробела (папка по этому пути должна существовать), например C:\Temp,
  3. Добавить в файл %CUDA_PATH%/bin/nvcc.profile, где %CUDA_PATH% может иметь вид C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5, строку «TEMP=path_without_space», где path_without_space – путь, не содержащий пробела (папка по этому пути должна существовать), например C:\Temp.

Шаблон проекта для архитектуры CUDA в Microsoft Visual Studio 2008

В интегрированной среде разработки Microsoft Visual Studio 2008 есть множество стандартных шаблонов нового проекта на Visual C++. Но при использовании такого инструмента для параллельного программирования как NVidia CUDA Toolkit 5.0 (без всяких дополнений) приходится каждый новый CUDA-проект на C++ настраивать вручную.

К счастью, рутинная процедура настройки автоматизируется после установки бесплатного CUDA VS Wizard 2.9 и внести в него небольшие исправления, перечисленные ниже.За несколько кликов можно создать пустой CUDA-проект, который успешно компилируется в конфигурации Win32. Чтобы компилировать его в конфигурации x64 (п. 2), а также для чисто «косметических» эффектов (пп. 3 и 4), выполните следующие шаги.

1. Найдите инсталляционную папку среды, например, C:/Program Files (x86)/Microsoft Visual Studio 9.0. Далее она обозначается как $(VSInstallDir).

2. Откройте в текстовом редакторе файл $(VSInstallDir)/VC/VCWizards/CUDA/CUDAWinApp/Scripts/1033/default.js. Найдите все вхождения пути «$(CUDA_PATH)\lib» и замените их на «$(CUDA_PATH)/lib/$(PlatformName);».

3. Добавьте строку «CUDAWinApp.vsz| |CUDAWinApp|1|A sample CUDA application.| |6777| |CUDAWinApp» в текстовый файл $(VSInstallDir)/VC/vcprojects/vc.vsdir.

4. В файле $(VSInstallDir)/VC/vcprojects/CUDA/CUDAWinApp.vsdir исправьте текст подсказки «TODO: Wizard Description.» на «A sample CUDA application.».