Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LIX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 27 ноября 2017 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Жданов Н.С. ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА RASPBERRY PI // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LIX междунар. студ. науч.-практ. конф. № 11(58). URL: https://sibac.info/archive/technic/11(58).pdf (дата обращения: 18.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА RASPBERRY PI

Жданов Никита Сергеевич

студент, факультет оптико-информационных систем и технологий Московского государственного университета геодезии и картографии (МИИГАиК),

РФ, г. Москва

Лапчинская Маргарита Петровна

научный руководитель,

канд. техн. наук, доцент, доцент Московского государственного университета геодезии и картографии (МИИГАиК)

РФ, г.Москва

Введение

Основополагающими затратами в области вычислений являются мощности компьютеров и их энергопотребление. Современные суперкомпьютеры занимают огромное пространство и потребляют сотни тысяч ватт.

Большой проблемой в этом случае является процесс обучения параллельному программированию и выполнению расчетов на суперкомпьютерах и тем более – управлению такого типа компьютерами, поскольку непосредственного доступа к ним у обучающихся, как правило, нет.

В данной работе предлагается для решения данной проблемы использовать одноплатные микрокомпьютеры, недавно появившиеся на рынке компьютерной техники (Paspberry Pi и аналоги). На их основе можно собрать недорогой вычислительный кластер и обучать студентов основам параллельного программирования. Таким образом, цель этой работы – создание недорогого учебного кластера из микрокомпьютеров для разработки и внедрения в учебный процесс алгоритмов параллельного программирования. Демонстрируется пример параллельных вычислений в разработанном учебном кластере.

Raspberry Pi – микрокомпьютер разработанный компаний Raspberry Pi Foundation. Маленький, размером с банковскую карту, он представляет собой полноценный одноплатный компьютер (System-on-a-Chip). Процессор (в модели PI 3): 4 ядра ARM Cortex-A53 x64. Операционная система по умолчанию Raspberian (основанная на Linux ядре). При цене всего в 35$ у платы есть все нужные интерфейсы (Wi-Fi, Bluetooth, Usb, Ethernet), а также большой набор готовых программ для любого вида деятельности [1]. Именно поэтому для небольшого учебного вычислительного кластера были выбраны эти микрокомпьютеры.

Понятие кластера и кластерных вычислений

Общеизвестно, что кластер – это группа компьютеров, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единый аппаратный ресурс [2]. С другой стороны, кластер – это слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих программных приложений [3]. Для того чтобы связать несколько raspberry PI в кластер, была собрана типовая кластерная вычислительная система (маршрутизатор, кабели Ethernet, USB и др.) на базе процессора PI 3 (рис. 1).

 

Рисунок 1. Кластерная вычислительная система на базе процессора из двух PI 3

 

Демонстрация параллельных вычислений

Для наглядной демонстрации возможностей кластера из двух PI 3 была выбрана среда программирования Python 2 и реализация алгоритма сортировка массива методом слияния. Компьютеры были объединены локальной сетью. Для упрощения составления кластера из нескольких R PI существует много готовых программ, одна из которых называется “mpi4py” [2].

Программный код сортировки массива слиянием на языке Python выглядит следующим образом:

import time

 

def merge(left,right): #merges 2 sorted lists together

result = []

i, j = 0, 0

 

#Goes through both lists

while i < len(left)and j < len(right):

#Adds smaller element of the lists to the final list

if left[i] <= right[j]:

result.append(left[i])

i += 1

else:

result.append(right[j])

j += 1

result += left[i:]

result += right[j:]

 

return result

 

def mergesort(lst):

 

#if there's only 1 element, no need to sort

if len(lst)< 2:

return lst

#breaks down list into 2 halves

middle = len(lst)/ 2

 

#recursively splits and sorts each half

left = mergesort(lst[:middle])

right = mergesort(lst[middle:])

 

#merges both sorted lists together

return merge(left, right)

Алгоритм работы программы состоит из следующей последовательности действий:

1. На PI 3 (сервер) генерируется случайный массив чисел.

2. Данный массив разбивается на n частей, по количеству процессоров в локальной сети.

3. С помощью модуля socket и локальной сети Pi3 (сервер) передает часть массива Pi3 (клиент).

4. Pi3 (сервер) сортирует свою часть массива и ждет ответа Pi3 (клиент).

5. Pi3 (клиент) сортирует свою часть массива и передает ее Pi3 (сервер).

6. Pi3 (сервер) получает отсортированную часть массива и выполняет конечную сортировку.

Расчеты показали, что для сортировки массива из 500 тысяч элементов одному Pi3 потребовалось около 23 секунд. После добавления второго Pi3 это время уменьшилось до 16 секунд. Прирост скорости нелинейный, но чем больше будет в кластере компьютеров, тем меньше будет затрачиваемое время.

Заключение

Одноплатные компьютеры лишь недавно вышли за пределы сегмента устройств для автоматизации производства и начали завоевывать массовый рынок. Их небольшие размеры, небольшое энергопотребление и достаточно высокие вычислительные возможности способны сделать их основой для реализации различных проектов, например, обучение параллельному программированию. Особенностью, представленной кластерной вычислительной системы на базе raspberry PI 3, является хорошая масштабируемость, определяемая возможностями коммутационного оборудования, невысокая стоимость, возможность применения бесплатно распространяемого программного обеспечения, что важно при внедрении в учебный процесс. Проведенная демонстрационная работа показывает, что кластер даже из двух PI 3 способен ускорить вычисление простой, но одновременно и объемной задачи, такой как сортировка большого массива данных.

В перспективе планируется увеличить в вычислительной системе число микрокомпьютеров и провести сравнение производительности криптографических алгоритмов, в частности, планирующихся использовать для шифрования/расшифрования изображений (фото-, аеро-, космо- изображений) большого объема и передаче их по сети Интернет.

 

Список литературы:

  1. Robert Mullins/ Distributed computed //University Cambridge. – 2012. – http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/distributed-computing/.
  2. Кластер. – Режим доступа. – URL: https://ru.wikipedia.org/wiki/Кластер (дата обращения 25.02.2017).
  3. Лукин В.В., Марчевский И.К. Учебно-экспериментальный вычислительный кластер. Ч. 1. Инструментарий и возможности. – Режим доступа. – URL: https://elibrary.ru/download/elibrary_17091004_33209664.pdf (дата обращения 25.02.2017).
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.