Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

ru:installation [2012/10/15 17:30]
deinega [Установка]
ru:installation [2013/04/20 11:18] (текущий)
deinega [Содержание архива EMTL]
Строка 1: Строка 1:
 ====== Установка ====== ====== Установка ======
  
-В настоящее время EMTL выкладывается в виде библиотек для Linux (gcc) и Windows (MS  VS 2005). Все необходимые заголовочные файлы включены в предоставляемый архив. Сам код сейчас находится в состоянии тщательного документирования, и его выкладывание планируется летом 2012. +Для работы с библиотекой EMTL необходимо: 
- +  * скачать [[download|архив EMTL]]; 
-В данном разделе рассказывается как установить библиотеку EMTL и необходимые дополнения и начать с ней работу. Примеры по работе с библиотекой можно посмотреть в разделе [[ru/tutorial]]. +  * скачать архив [[ivutils|ivutils]] и положить его в ту же директорию, где находится EMTL; 
- +  * [[ru/download|скачать]] и установить библиотеку быстрого преобразования Фурье [[http://www.fftw.org/download.html|FFTW]].
-Для работы с библиотекой EMTL необходимо [[ru/download|скачать]] и установить библиотеку быстрого преобразования Фурье [[http://www.fftw.org/download.html|FFTW]].+
  
 Чтобы иметь возможность запускать версию библиотеки EMTL для параллельного режима работы (EMTL MPI), необходимо установить библиотеку MPI.  Параллельный режим работы позволяет производить вычисления одновременно на нескольких ядрах процессора или на нескольких процессорах в кластере. Все функции EMTL, использующие вызовы MPI, поставляются в виде исходного кода (файл implmpi.cpp), поэтому можно использовать Чтобы иметь возможность запускать версию библиотеки EMTL для параллельного режима работы (EMTL MPI), необходимо установить библиотеку MPI.  Параллельный режим работы позволяет производить вычисления одновременно на нескольких ядрах процессора или на нескольких процессорах в кластере. Все функции EMTL, использующие вызовы MPI, поставляются в виде исходного кода (файл implmpi.cpp), поэтому можно использовать
Строка 16: Строка 15:
 Для академических структур мы готовы предоставлять оптимизированную версию. Для академических структур мы готовы предоставлять оптимизированную версию.
 */ */
- 
-Далее будет подробно рассказано, как установить EMTL. 
- 
 ====== Установка необходимых пакетов программ ====== ====== Установка необходимых пакетов программ ======
  
 ===== Установка FFTW ===== ===== Установка FFTW =====
  
-Итак, для того чтобы использовать EMTL, нужно установить библиотеку быстрого преобразования Фурье FFTW.+Для того чтобы использовать EMTL, нужно установить библиотеку быстрого преобразования Фурье FFTW.
  
 **Дистрибутив FFTW для UNIX** находится [[http://www.fftw.org/download.html|здесь]]. Для установки его нужно скачать (с помощью команды wget, аргументом которой служит ссылка на архив), разархивировать (с помощью команд gunzip и tar –xvf) и установить согласно [[http://www.fftw.org/fftw3_doc/Installation-on-Unix.html#Installation-on-Unix|инструкции с сайта FFTW]], а именно, нужно последовательно выполнить три команды: **Дистрибутив FFTW для UNIX** находится [[http://www.fftw.org/download.html|здесь]]. Для установки его нужно скачать (с помощью команды wget, аргументом которой служит ссылка на архив), разархивировать (с помощью команд gunzip и tar –xvf) и установить согласно [[http://www.fftw.org/fftw3_doc/Installation-on-Unix.html#Installation-on-Unix|инструкции с сайта FFTW]], а именно, нужно последовательно выполнить три команды:
Строка 47: Строка 43:
 ====== Содержание архива EMTL ====== ====== Содержание архива EMTL ======
  
-В папках photonic  и ivutils/include находятся заголовочные файлы EMTL.+В папке include находятся заголовочные файлы EMTL.
  
-В папках photonic/unix/_gcc_rel и photonic/unix/_gcc_seq_rel находятся параллельная и последовательная версия библиотечного файла для UNIX libemtl.a.+В папке vs10/Release и vs10/Debug находятся библиотечные файлы libemtl.lib для Miscrosoft Visual Studio 10.
  
-В папке photonic/vs8/lib находятся библиотечные файлы EMTL для Windows: +В папках unix/_gcc и unix/_gcc_mpi находятся последовательная и параллельная версия библиотечного файла для UNIX lib_emtl.a.
-  * libemtl_mpi.lib – параллельная Release версия+
-  * libemtl_mpid.lib – параллельная Debug версия; +
-  * libemtl_serial.lib – последовательная Release версия; +
-  * libemtl_seriald.lib – последовательная Debug версия.+
  
 В папках tests находятся тестовые проекты с примерами расчетов: В папках tests находятся тестовые проекты с примерами расчетов:
   * test_plate - прохождение волны через пластинку   * test_plate - прохождение волны через пластинку
   * test_mie - рассеяние на сфере   * test_mie - рассеяние на сфере
-В каждой такой папке содержится исходный файл C++ с заданием эксперимента FDTD, а также папка unix с makefile и папка vs8 с файлом проекта для Visual Studio.+В каждой такой папке содержится исходный файл C++ с заданием эксперимента FDTD, а также папка unix с makefile и папка vs10 с файлом проекта для Visual Studio 10.
  
 О том, как компилировать тестовые проекты под различные операционные системы написано ниже. Подробнее о тестовых проектах читайте в разделе [[tutorial]]. О том, как компилировать тестовые проекты под различные операционные системы написано ниже. Подробнее о тестовых проектах читайте в разделе [[tutorial]].
Строка 68: Строка 60:
 Правила компиляции кода С++ в UNIX (в частности, описание makefile) можно почитать [[http://revolution.allbest.ru/programming/00015190_0.html|здесь]].  Правила компиляции кода С++ в UNIX (в частности, описание makefile) можно почитать [[http://revolution.allbest.ru/programming/00015190_0.html|здесь]]. 
  
-===== Подключение EMTL в UNIX =====+===== Компиляция EMTL под UNIX =====
  
-Для подключения EMTL к вашему проекту нужно вставить заголовочный файл uiexp.h в ваш *.cpp файл. +Вы можете использовать готовый makefile (tests/test_mie/unix/Makefile)
-<code cpp> +Мы его создали используя [[http://make.paulandlesley.org/multi-arch.html|Paul DSmith rules]].
-#include "uiexp.h"; +
-</code> +
-Далее, Вам нужно указать при компиляции: +
-  * пути к заголовочным файлам EMTL (папки photonic и ivutils/include) и заголовочным файлам FFTW; +
-  * используемые библиотечные файлы EMTL - libemtl.a и FFTW - libfftw3.a.  +
- +
-Также нужно скомпилировать файл photonic/implmpi.cppПри компиляции параллельной версии нужно использовать макроопределение препроцессора С++ USE_MPI.+
  
-===== Тестовые примеры для UNIX =====+Этот makefile по умолчанию компилирует test_mie.cpp, однако вы можете указать другой файл в строчке SRC_MAIN.  
 +Makefile использует файлы Makefile.arch и Makefile.target files из папки ivutils.
  
-Для выполнения этой работы мы создали файлы makefile.gccкоторые находятся в папках с тестовыми проектами +Вы должны указать ваши настройки в Makefile.archизбрав для них какое-нибудь имя (смотрите примеры в Makefile.arch)Настройки это
-Например, tests/test_plate/unix компилирует тестовый файл tests/test_plate/test_plate.cpp. Для его использования нужно прописать в нем значения следующих переменных: +
   * FFTW_PATH - ваш путь к библиотеке FFTW;   * FFTW_PATH - ваш путь к библиотеке FFTW;
   * CPP - название вашего компилятора С++.   * CPP - название вашего компилятора С++.
-После этого нужно перейти в tests/test_plate/unix и написать make –f makefile.gcc+Имя по умолчанию _ARCH=gnu соответствует компилятору gcc.
  
-При вызове makefile.gcc по умолчанию компилируется параллельная версия. Для компиляции последовательной версии нужно вызывать makefile.gcc с аргументом _MPI=false (make –f makefile.gcc _MPI=false).+Дальше вам нужно перейти в директорию tests/test_mie/unix 
 +<code> 
 +cd tests/test_mie/unix 
 +</code> 
 +и скомпилировать последовательную версию 
 +<code> 
 +make _ARCH=<your_archname> 
 +</code> 
 +или параллельную версию 
 +<code> 
 +make _ARCH=<your_archname> _MPI=true 
 +</code> 
 +  
 +Исполняемый файл будет записан в директорию _<your_archname> или _<your_archname>_mpi. 
 + 
 +===== Если вы хотите сами создать Makefile ===== 
 + 
 +тогда вам в нем нужно указать: 
 +  * пути к заголовочным файлам EMTL (папки photonic и ivutils/includeи заголовочным файлам FFTW; 
 +  * используемые библиотечные файлы EMTL - lib_emtl.a и FFTW - libfftw3.a.  
 + 
 +Также нужно скомпилировать файл ivutils/src/implmpi.cpp. При компиляции параллельной версии нужно использовать макроопределение препроцессора С++ USE_MPI.
  
 ====== Компиляция под Windows (Visual Studio 2005) ====== ====== Компиляция под Windows (Visual Studio 2005) ======
Строка 146: Строка 152:
 \\ \\
 \\ \\
-===== Подключение EMTL в Windows =====+===== Компиляция EMTL под Windows =====
  
-Чтобы работать с EMTL вам нужно указать путь к файлам fftw3.h и fftw3.lib в закладке Visual Studio Tools > Options > Project and Solutions > VC++ Directories в списках Include Files и Library Files.+В каждой директории с тестовым проектом есть поддиректория vs10, в которой находится готовый проект для MS Visual Studio 10 с несколькими конфигурациями. Для компиляции достаточно открыть его в Visual Studio, выбрать необходимую конфигурацию, указать пути к файлам FFTW и, если это необходимо, к файлам MPICH2.  
 + 
 +Путь к файлам fftw3.h и fftw3.lib нужно указать в закладке Visual Studio Tools > Options > Project and Solutions > VC++ Directories в списках Include Files и Library Files.
  
 Если вы используете MPICH2, то нужно указать пути: Если вы используете MPICH2, то нужно указать пути:
Строка 155: Строка 163:
   * Program Files\MPICH2\lib   * Program Files\MPICH2\lib
 в списках Executable Files, Include Files и Library Files. в списках Executable Files, Include Files и Library Files.
- 
-Далее нужно указать путь к заголовочным файлам photonic и ivutils/include в Project > Project Properties > Configuration Properties > C/C++ > General > Additional Include Directories. 
  
 Также нужно перечислить библиотечные файлы в Project > Project Properties > Configuration Properties > Linker > Input > Additional Dependencies. Это, во-первых, один из библиотечных файлов из photonic/vs8/lib (нужный файл зависит от того, находитесь вы в режиме Debug или Release, и используете ли вы последовательную или параллельную версию). Во-вторых, это fftw3.lib. В-третьих, это mpi.lib, если вы используете MPICH2. Также нужно перечислить библиотечные файлы в Project > Project Properties > Configuration Properties > Linker > Input > Additional Dependencies. Это, во-первых, один из библиотечных файлов из photonic/vs8/lib (нужный файл зависит от того, находитесь вы в режиме Debug или Release, и используете ли вы последовательную или параллельную версию). Во-вторых, это fftw3.lib. В-третьих, это mpi.lib, если вы используете MPICH2.
  
-Также вам нужно добавить в свой проект файл photonic/implmpi.cpp. +Если вы компилируете параллельную версию, вам нужно добавить в Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions макроопределение USE_MPI.
- +
-Если вы компилируете параллельную версию, вам нужно добавить в Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions макроопределение C++ USE_MPI.+
  
 Для подключения EMTL, нужно вставить заголовочный файл uiexp.h в ваш *.cpp файл  Для подключения EMTL, нужно вставить заголовочный файл uiexp.h в ваш *.cpp файл 
Строка 173: Строка 177:
   * MPIRun Working Directory: $(OutDir)   * MPIRun Working Directory: $(OutDir)
   * MPIShim Location: путь к файлу mpishim.exe (например, C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x86/mpishim).   * MPIShim Location: путь к файлу mpishim.exe (например, C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x86/mpishim).
- 
-===== Тестовые примеры для Windows ===== 
- 
-В каждой директории с тестовым проектом есть поддиректория vs8, в которой находится готовый проект для MS VS2005 с несколькими конфигурациями. Для компиляции достаточно открыть его в Visual Studio, выбрать необходимую конфигурацию, указать пути к файлам FFTW и, если это необходимо, к файлам MPICH2. Как это сделать уже рассказывалось выше. 
  
 
/home/kintechlab/fdtd.kintechlab.com/docs/data/attic/ru/installation.1350307829.txt.gz · Последние изменения: 2012/10/15 17:30 — deinega     Наверх