Различия

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

ru:download [2012/07/03 09:00]
deinega [Скачать]
ru:download [2013/10/24 07:15] (текущий)
deinega
Строка 1: Строка 1:
 ======Скачать====== ======Скачать======
  
-В настоящее время EMTL выкладывается в виде библиотек для Linux (gcc) и Windows (MS VS 2005). Все необходимые заголовочные файлы включены в предоставляемый архив. Сам код сейчас находится в состоянии тщательного документирования, и его выкладывание планируется летом 2012.+Свободно распространяемый исходный код EMTL находится в состоянии тщательного документирования, и его выкладывание планируется весной 2013.  Однако, какая-то часть кода уже выложена в [[ivutils]].
  
-В текущей версии открытой библиотеки EMTL предоставляются неоптимизированные версии некоторых внутренних циклов FDTDДля получения оптимизированной версии, позволяющей существенно ускорить расчеты, обращайтесь в Kintech Lab. Для академических структур мы готовы предоставлять оптимизированную версию.+В настоящее время доступна скомпилированная версия EMTL в виде библиотек для Linux (gcc) и Windows (MS Visual Studio 2010)Все необходимые заголовочные файлы включены в предоставляемый архив. Для использования библиотеки нужно установить FFTW и (необязательно) MPI
  
-Версия 2010+Скачать EMTL: {{:emtl.zip}}
  
-    * {{:emtl2010.zip}} +Скомпилированной библиотеки и ее интерфейса должно быть достаточно для программирования стандартных 
 +численных экспериментов FDTD.  
 +Если вы хотите получить исходный код для его модификации, в данный момент мы можем предоставить его на условиях отдельного лицензионного соглашения с компанией [[http://kintechlab.com|Кинтех Лаб]]. Это соглашение подразумевает, что вы не планируете распространять код (пока он не будет выложен на этом сайте компанией Кинтех), и вы будете ссылаться на EMTL в ваших публикациях. В случае заинтересованности пишите на [[mailto:fdtd@kintechlab.com|fdtd@kintechlab.com]]. Представьте себя и опишите, какие модификации вы хотели бы внести в EMTL.
  
-Версия 2012. Более подробно документированы include файлы, исправлены некоторые ошибки, однако пока нет библиотек для UNIX. Если вы работаете под Windows, пользуйтесь этой версией. 
- 
-    * {{:emtl2012.zip}}  
- 
-======Утилиты ivutils====== 
- 
-EMTL базируется на библиотеке ivutils. 
-Это библиотека утилит, которые могут быть использованы для создания численных приложений. 
- 
-Библиотека ivutils включает следующие утилиты: 
- 
-  *геометрические объекты (вектора, плоскости, 2D и 3D объекты, линейное преобразование над ними) 
-  *интерфейс для решения системы линейных уравнений с помощью LAPACK и PARDISO 
-  *однородная и неоднородная сетки для хранения и интерполяции данных 
-  *детекторы для записи данных в двоичные или текстовые файлы во время расчета 
-  *таймеры для измерения машинного времени, затраченного на выбранные функции 
-  *логгеры для записи выходных сообщений во время работы программы и обработки исключений 
-  *умные указатели для контроля над памятью, выделяемой под динамические объекты 
-  *пакеры для упаковки данных 
-  *парсеры математических выражений и простых ини-файлов 
-  *интерфейс для работы с MPI 
- 
-Для использования библиотечных утилит, нужно их скачать и скомпилировать с вашим кодом. 
-Мы прилагаем некоторые примеры их использования. 
- 
-=====Парсер математических выражений===== 
- 
-Интерфейс для разбора математических выражений. Он позволяет обрабатывать строки, содержащие арифметические операции, скобки и функции, и вычислять значение заданного выражения. 
- 
-Например 
-<code cpp> 
-#include "alg_parser.h" 
-int main(){ 
-  AlgebraicParser AP; 
-  double val; // here calculated value will be recorded 
-  int res=AP("sqrt(5+cos(3*pi))", &val); // if res=1 expression is correct 
-  res=AP("1e-5", &val); // if res=1 expression is correct 
-  return 0; 
-} 
-</code> 
- 
-Код: 
- 
-    * {{:download/string_utils.h}} {{:download/string_utils.cpp}} 
-    * {{:download/alg_parser.h}} {{:download/alg_parser.cpp}} 
- 
-Пример работы: 
- 
-    * {{:download/test_alg_parser.cpp}}  
- 
-======Скрипт для запуска задач на произвольном суперкомьютере====== 
- 
-Для расчета больших задач используются суперкомьютеры. 
- 
-Запуск задач на них предполагает: 
-  *создание сценария, в котором вы указываете имя исполняемого файла, требуемое количество процессоров, время исполнения и т. д. 
-  *запуск этого сценария, что приводит к постановке задачи очередь и последущему ее выполнению. 
- 
-Различные суперкомпьютеры используют различный синтаксис для создания и запуска таких сценариев. 
-Ручное создание таких сценариев под каждую задачу весьма времезатратно. 
- 
-Для упрощения этой работы, мы создали специальный скрипт {{:qsub.py}} на языке python. 
-Он позволяет запускать задачи на произвольном суперкомпьютере, и является переносимым с одного суперкомпьютера на другой. 
-Для определения, какой суперкомпьютер используется в данный момент, скрипт использует команду UNIX 'hostname'. 
- 
-Для использования скрипта, нужно написать инструкцию, как создавать сценарий и запускать его на вашем суперкомпьютере в функции make_script. 
-Это уже сделано для некоторых суперкомпьютеров: SciNet (Канада), суперкомпьютер Курчатовского Института, МВС-100K (МСЦ РАН), СКИФ МГУ и т. д. 
- 
-После этого вы можете использовать функцию qsub со следующими аргументами: 
- 
-  qsub(workdir,worksubdir,prog,args,time,np,ppn=0,task='',fname='',act=1,skip='') 
- 
-Эта функция создает директорию workdir/worksubdir, копирует туда исполняемый файл prog, создает там сценарий SCRIPT.sh для запуска исполняемого файла с аргументами командной строки args на np процессорах на количество секунд time (на некоторых суперкомпьютерах время можно не указывать). 
- 
-Необязательные параметры функции qsub: 
- 
-ppn - количество процессоров, используемое на узле (значение по умолчанию ppn=0 приводит к тому, что по возможности используется полное число процессоров на узле), 
- 
-task - имя задачи, 
- 
-fname - имя файла или список файлов, которые будут копироваться в workdir/worksubdir, 
- 
-act - 1 (поставить задачу в очередь) или 0 (не делать этого). В любом случае команда для запуска скрипта будет записана в файл QSUB.sh, 
- 
-skip - если файл с этим именем будет найден в workdir/worksubdir, функция qsub не выполнится. 
- 
-Например, допустим ваш исполняемый файл 'a.out' находится в текущей папке '.'. 
-Скопируем в эту папку скрипт 'qsub.py' и создадим в ней 'script.py': 
- 
-  #! /usr/bin/python 
-  from qsub import * 
-  qsub('.','test','a.out','',60*60,8) 
- 
-Сделаем его исполняемым 
- 
-  chmod u+x script.py 
- 
-и выполним его 
- 
-  ./script.py 
- 
-В результате в текущей папке будет создана поддиректория test, куда будет перенесен исполняемый файл a.out, а также создан сценарий SCRIPT.sh для запуска этого файла на 8 процессорах на час и файл QSUB.sh, для запуска этого сценария. 
- 
-Как правило, на разных суперкомпьютерах вы имеете различные пути к домашней директории, где вы компилируете ваш проект, и к рабочей директории, где вы исполняете задачу и сохраняете ее результат. Вы можете прописать такие пути для каждого суперкомпьютера и пользователя (который определяется функцией UNIX 'whoami') в функции getdirs. 
- 
-После этого вы можете пользоваться функцией qsub_appl: 
- 
-  qsub_appl(workdir,worksubdir,prog,args,time,np,ppn=0,task='',fname='',act=1,skip='') 
- 
-Аргументы этой функции такие же, как и у функции qsub. 
-Единственное отличие в том, что директория workdir/worksubdir будет создаваться в вашей рабочей директории, а исполняемый файл prog и вспомогательный файл fname будут искаться в вашей домашней директории. 
  
 +/*В текущей версии открытой библиотеки EMTL предоставляются неоптимизированные версии некоторых внутренних циклов FDTD. Для получения оптимизированной версии, позволяющей существенно ускорить расчеты, обращайтесь в Kintech Lab. Для академических структур мы готовы предоставлять оптимизированную версию.*/
  
 
/home/kintechlab/fdtd.kintechlab.com/docs/data/attic/ru/download.1341291657.txt.gz · Последние изменения: 2012/07/03 09:00 — deinega     Наверх