[Перевод] Вычисление числа Пи с помощью Intel Threading Building Blocks

Многие Android-устройства используют процессоры с несколькими вычислительными ядрами, поэтому в отрасли разработки мобильных приложений всё более важным становится умение создавать многопоточные программы. Компания Intel предлагает ценный инструментарий для разработки «параллельных» приложений — он называется Intel Threading Building Blocks (Intel TBB). По существу, Intel TBB представляет собой кросс-платформенную библиотеку шаблонов для создания параллельных программ. Она позволяет создавать и синхронизировать потоки данных, оставляя за кадром детали архитектуры и позволяя вам работать на высоком уровне абстрагирования. Intel TBB поддерживает все архитектуры. Что касается ОС Android, то следует использовать версию 4.3 и выше.imageСоздание Intel TBB Скачайте Intel TBB, найти можно здесь: www.threadingbuildingblocks.org. Добавьте NDK в PATH. Для Windows: $ SET PATH=%PATH%; Для Linux: $ export PATH=$PATH: Распакуйте TBB и перейдите в директорию с исходным кодом и в папку src. $ cd /src/ Запустите TBB для Android: $ /ndk-build –C /src/ arch=intel64 compiler=gcc target=android clean tbb tbbmalloc –j Эта команда создает TBB для 64-разрядной версии Android 64. Чтобы сформировать TBB для 32-разрядной версии Android, замените arch=intel64 на arch=ia32. Библиотека создана. В соответствующей директории (/build/) вы найдете поддиректории с библиотеками: libgnustl_shared.so, libtbbmalloc_proxy.so, libtbbmalloc.so and libtbb.so. libtbb.so и libgnustl_shared. Теперь их можно использовать в нашем приложении. Вычисление числа Пи Для вычисления Пи можно выбрать в Wikipedia любую формулу с определенным интегралом. Я выбрал следующую формулу: image Для данной программы я модифицировал эту формулу: image Для вычисления интеграла я использовал метод прямоугольников. Интегрируемая функция разбивается на N = 107 равных подинтервалов длиной h = 2·10–7. Затем вычисляется аппроксимация интеграла — сложением площадей (основание х высоту) N прямоугольников по формуле: image Создание приложения Создадим новое Android-приложение: image

Создадим «основную активность» (Main Activity). Копируем следующий код в res/layout/activity_main.xml: