Различия

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

ru:installation [2012/02/28 09:25]
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), поэтому можно использовать
Строка 11: Строка 10:
 |MPICH2]].  |MPICH2]]. 
  
 +/*
 В текущей версии открытой библиотеки EMTL предоставляются неоптимизированные версии некоторых внутренних циклов FDTD. В текущей версии открытой библиотеки EMTL предоставляются неоптимизированные версии некоторых внутренних циклов FDTD.
 Для получения оптимизированной версии, позволяющей существенно ускорить расчеты, обращайтесь в Kintech Lab. Для получения оптимизированной версии, позволяющей существенно ускорить расчеты, обращайтесь в Kintech Lab.
 Для академических структур мы готовы предоставлять оптимизированную версию. Для академических структур мы готовы предоставлять оптимизированную версию.
- +*/
-Далее будет подробно рассказано, как установить 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]], а именно, нужно последовательно выполнить три команды:
Строка 45: Строка 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]].
Строка 66: Строка 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) ======
Строка 94: Строка 102:
 Для создания проекта Visual Studio выбираем закладку File > New > Project. В выплывшем окошке выбираем Empty Project. Для создания проекта Visual Studio выбираем закладку File > New > Project. В выплывшем окошке выбираем Empty Project.
  
-{{:ru:install:install_windows_1.png|}}+{{:install:install_windows_1.png|}}
  
 После этого в папке, которую вы укажете в окошке Location, создастся ряд файлов, один из которых имеет расширение *.vcproj. При запуске проекта нужно открывать именно этот файл. После этого в папке, которую вы укажете в окошке Location, создастся ряд файлов, один из которых имеет расширение *.vcproj. При запуске проекта нужно открывать именно этот файл.
 Слева в редакторе Visual Studio находится следующее окошко. Слева в редакторе Visual Studio находится следующее окошко.
  
-{{:ru:install:install_windows_2.png|}}+{{:install:install_windows_2.png|}}
  
 *.cpp файлы проекта должны находиться в папках из этого окошка. Среди всех *.cpp файлов должен быть один файл, содержащий функцию main, откуда осуществляется вход в программу. *.cpp файлы проекта должны находиться в папках из этого окошка. Среди всех *.cpp файлов должен быть один файл, содержащий функцию main, откуда осуществляется вход в программу.
Строка 115: Строка 123:
 После чего подключим этот файл в проект. Для этого нажмем правой кнопкой мыши на Source Files (точно так же можно нажать и на другую папку), выберем Add > Existing Item и в открывшемся окошке выберем файл test.cpp. После чего подключим этот файл в проект. Для этого нажмем правой кнопкой мыши на Source Files (точно так же можно нажать и на другую папку), выберем Add > Existing Item и в открывшемся окошке выберем файл test.cpp.
  
-{{:ru:install:install_windows_3.png|}}+{{:install:install_windows_3.png|}}
  
 Для того, чтобы скомпилировать проект, нужно нажать Build > Build Solution. Для того, чтобы скомпилировать проект, нужно нажать Build > Build Solution.
Строка 134: Строка 142:
 После этого мы можем ставить breakpoinerы в коде программы После этого мы можем ставить breakpoinerы в коде программы
  
-{{:ru:install:install_windows_3_.png|}}+{{:install:install_windows_3_.png|}}
  
 и выполнять ее пошагово (Debug > Step Over, Debug > Step Into, Debug > Step Out). В нижнем окошке Watch можно смотреть значения переменных (для этого нужно внести в столбец Name имя переменной, а в столбце Value посмотреть на значение). и выполнять ее пошагово (Debug > Step Over, Debug > Step Into, Debug > Step Out). В нижнем окошке Watch можно смотреть значения переменных (для этого нужно внести в столбец Name имя переменной, а в столбце Value посмотреть на значение).
Строка 141: Строка 149:
 Если программа задействует библиотечные файлы с расширением *.lib, их нужно перечислить через пробел в Project > Project Properties > Configuration Properties > Linker > Input > Additional Dependencies. Если вы хотите добавить папки по умолчанию, в которых компилятор будет искать заголовочные и библиотечные файлы, вам нужно воспользоваться Tools > Options > Project and Solutions > VC++ Directories. Добавьте эти папки в список папок для Include Files и Library Files. Если программа задействует библиотечные файлы с расширением *.lib, их нужно перечислить через пробел в Project > Project Properties > Configuration Properties > Linker > Input > Additional Dependencies. Если вы хотите добавить папки по умолчанию, в которых компилятор будет искать заголовочные и библиотечные файлы, вам нужно воспользоваться Tools > Options > Project and Solutions > VC++ Directories. Добавьте эти папки в список папок для Include Files и Library Files.
  
-{{:ru:install:install_windows_4.png|}}+{{:install:install_windows_4.png|}}
 \\ \\
 \\ \\
-===== Подключение 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, то нужно указать пути:
Строка 153: Строка 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 файл 
Строка 171: Строка 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.1330406736.txt.gz · Последние изменения: 2012/02/28 09:25 — deinega     Наверх