Складання TauDEM в Linux

У статті поетапно описується процес складання з вихідного коду набору програм TauDEM у Unix-подібних операційних системах.

Зміст

Коротко про TauDEM

На офіційному сайті доступні скомплільовані утиліти для Windows (32/64-bit), а також доповнення до ArcGIS 9.* у вигляді стандартного "тулбоксу". Починаючи з версії 5, всі програми у складі TauDEM адаптовані для паралельних обчислень, для забезпечення багатопоточності за замовчуванням використовується відкрита бібліотека MPICH2. При використанні такого підходу навіть на однопроцесорних машинах завдання все одно виконується у вигляді кількох паралельних процесів.

Слід зазначити, що тільки в поточній версії TauDEM з'явилися т.зв. make-файли для системи збирання програм make у Unix-системах.

Підготовка до збирання

На офіційній сторінці TauDEM йдеться, що для складання програм та їх нормальної роботи має бути обов'язково встановлена ​​бібліотека MPICH2. Експериментально було з'ясовано, що інша, більш поширена серед Linux вільна реалізація MPI, — OpenMPI — також підходить цього завдання. У цьому випадку використовуватиметься саме OpenMPI, хоча основні дистрибутиви Linux містять у своїх репозиторіях і MPICH2.

Отже, для успішної компіляції нам знадобляться програми:

  • make- традиційна для Linux система складання;
  • cmake- "просунута" система складання;
  • gcc- набір компіляторів, у тому числі, для мови С++;
  • openmpi— файли OpenMPI, що виконуються, і набір файлів для розробників.

Увага: всі подальші дії будуть виконуватися в командному рядку і в основному з правами суперкористувача! Всі тестовані системи - офіційні LiveCD дистрибутивів.

Ubuntu9.10–11.04

У пакетному менеджері повинні бути підключені репозиторіїuniverse(установка черезSynapticабо в консолі за допомогоюapt-get/aptitude)

  • Відкриваємо термінал
  • Виконуємо команди від суперкористувача (su/sudo):
  • sudo apt-get update
  • sudo apt-get install cmake openmpi-bin libopenmpi-dev [З урахуванням оновлень та залежностей потрібно буде завантажити 10-11Mb]

У пакетному менеджері повинні бути підключені репозиторіїuniverse(установка черезSynapticабо в консолі за допомогоюapt-get/aptitude)

  • Відкриваємо термінал
  • Виконуємо команди від суперкористувача (su/sudo):
  • sudo aptitude update
  • openmpi-bin libopenmpi-dev [З урахуванням оновлень і залежностей потрібно буде завантажити близько 42Mb]

  • Відкриваємо термінал
  • Виконуємо команди від суперкористувача (su/sudo):
  • yum install gcc.i686 gcc-c++.i686 cmake openmpi.i686 openmpi-devel.i686 [З урахуванням оновлень та залежностей потрібно буде завантажити близько 60Mb.]
  • updatedb [Оновлюємо файлову базу даних]
  • Далі виконуємо команди від звичайного користувача: export PATH="$PATH:/usr/lib/openmpi/bin" [Додаємо директорію з openmpi до системного PATH; рекомендується відповідно редагувати PATH у файлі

    OpenSUSE 11.4

    У пакетному менеджері має бути підключений репозиторійContrib(установка черезYaSTабо в командному рядку за допомогоюzypper):

  • Відкриваємо термінал
  • Виконуємо команди від суперкористувача (su/sudo):
  • sudo zypper update
  • sudo zypper install gcc gcc-c++ make cmake openmpiopenmpi-devel [З урахуванням оновлень та залежностей потрібно буде завантажити близько 60Mb.]
  • В OpenSUSE файли OpenMPI, що виконуються, встановлюються за замовчуванням в директорію/usr/lib/mpi/gcc/openmpi/bin, її треба додати в системний PATH. Також потрібно додати шлях до бібліотек OpenMPI, що розділяються, в LD_LIBRARY_PATH, виконавши команду:

    При використанні MPICH2 замість OpenMPI для початку її треба встановити засобами пакетного менеджера вашого дистрибутива або з вихідного коду, потім потрібно запустити демонmpdабоsmpd. Як це зробити, найясніше скаже нам "підказка" з командного рядка:

    Складання TauDEM

    Для автоматизації процесу складання та встановлення TauDEM у різних дистрибутивах Linux був написаний невеликий shell-скрипт. Скрипт робить таке: перевіряє, чи всі необхідні компоненти встановлені; скачує архів з вихідним кодом (близько 260K); виправляє помилки у кількох файлах для збирання; запускає конфігурування та компіляцію за допомогоюсmake; встановлює скомпіловані утиліти у вибраний каталог і перейменовує їх відповідно до Windows-версій.

    Робота скрипта була перевірена на всіх вищезгаданих дистрибутивах Linux.

    Загалом скрипт працює так.

    • Збережіть скрипт на диск, дайте файлу права виконання: chmod +x taudem_linux_compile.sh
    • При запуску без аргументів скрипт створить у поточній директорії каталогTauDEMі далі працює у цьому каталозі, як описано вище. Виконувані файли будуть встановлені в./TauDEM/bin
    • Можна запустити скрипт з аргументом як шляху (якщо каталог існує, то скрипт працюватиме у ньому, якщо ні — створить його). taudem_linux_compile.sh

    Бажаючим щось змінити, покращити і т.д.рекомендується заглянути в сам скрипт і правити його під себе :)

    Тестування TauDEM

    Якщо збірка пройшла успішно, настав час тестувати TauDEM.

    Для цього можна використовувати допоміжний скрипт із вибірковими командами з офіційного посібника користувача. Потрібно просто скопіювати скрипт у каталог з файлами TauDEM, що виконуються, дати права на виконання і запустити. Скрипт сам скачає пробний набір даних (

    6M) та обробить їх. При успішному завершенні роботи в каталозіLoganможна знайти кілька растрів *.tif і shp-файлів, в самому скрипті подивитися використані команди, а в посібнику почитати, що все це означає :)