Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Raspberry Pi
  3. 2 raspberry pi = 1 сервер

2 raspberry pi = 1 сервер

Запланировано Прикреплена Закрыта Перенесена Raspberry Pi
8 Сообщения 1 Posters 193 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано
    #1

    Возникла идея, объединить 2 компьютера raspberry pi в один, типа 2-хядерного компа. Скажите, это реально реализовать? Например, для игрового сервера одной такой вещи будет маловать, а 2 в самый раз.

    P.S. Покупать системник не вариант, так как это выходит пока дешевле)

    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано
      #2

      у двуядерного процессора оба ядра имеют одинаковые возможности по доступу к общей для них памяти. То есть что первое ядро, что второе -- оба одинаково могут обращаться к одной и той же ячейке в памяти. В памяти могут находиться как какие-то данные, так и код программ.

      Причем в настоящих многоядерных процах каждое ядро 100 раз в секунду переключается на работу со следующей задачей. Вот, сколько в системе создано потоков, в стольких местах и работают ядра процессора. Обычно в системах нет привязки ядер к задачам. Просто существует одна очередь задач и существует два ядра. Какому ядру при очередном переключении задач достанется задача -- не имеет значения. Для задачи, ядра абсолютно одинаковы.

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

      Скорость доступа к собственной памяти составляет единицы-десяткии наносекунд. Скорость получения (допустим, по сети) копии памяти с соеднего компа составляет время от нескольких миллисекунд до сотен секунд. (Сколько времени у вас копируется фильм на флешку, а-а?)

      Иначе говоря, предложенный вариант двуядерного исполнения задачи на двух компах -- не возможен.

      Конечно, если вы сможете грамотно написать программу, которая способна исполняться одновременно (параллельно) на двух компах, и при этом компы будут обмениваться между собой по минимуму, то это вполне возможно. Но это будут какие-то очень специфические задачи, типа перебора вариантов сборки протеинов, или поиска биткоинов, или расшифровке сигналов внеземных цивилизаций...

      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано
        #3

        получается разбить один процесс на две задачи не получается никак. Спасибо за ответ.

        1 ответ Последний ответ
        0
        • piP Не в сети
          piP Не в сети
          pi
          написал в отредактировано
          #4

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

          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано
            #5

            Честно говоря, я не знаю, как там все реализовано. Я знаю, что основная работа "облака" -- это хранение файлов и организация множества никак не связанных друг с другом сдаваемых в аренду www-, ftp- и других серверов.

            Справка: сервер -- это не компьютер. Сервер -- это программы, которая предоставляет определенный вид сервиса по сети.

            Ни о каком совместном исполнении мега-программы на нескольких ядрах "облака" речи не идет. Для решения мега-задач существуют специальные кластеры, суперкомпьютеры.

            Я не могу точно ответить на эти вопросы, поскольку я не занимаюсь такими задачами. Но абсолютно точно могу сказать, что чтобы заставить два компа решать одну и ту же задачу -- нужно написать ДВЕ программы для каждого компа. Возможно, это будут две копии одной и той же программы. Но это будут две программы, которые выполняются на разных компах, а не одна программа, которая выполняется сразу двумя компами.

            1 ответ Последний ответ
            0
            • piP Не в сети
              piP Не в сети
              pi
              написал в отредактировано
              #6

              Все, спасибо, теперь немного яснее стало)

              1 ответ Последний ответ
              0
              • piP Не в сети
                piP Не в сети
                pi
                написал в отредактировано
                #7

                http://www.southampton.ac.uk/~sjc/raspberrypi/pi_supercomputer_southampton_web.pdf

                Здесь инструкция по шагам, как сделать из Raspbery суперкомпьютер. Автор в своей разработке объеденил 64 RPI.

                1 ответ Последний ответ
                0
                • piP Не в сети
                  piP Не в сети
                  pi
                  написал в отредактировано
                  #8

                  Из двух RPi один сервер не собрать. Если сделать все, как описано в статье чуть выше, то получится кластер из двух Rpi. Чтобы эффективно задействовать ресурсы кластера необходимо написать (переписать) серверное ПО под интерфейс MPI: http://ru.wikipedia.org/wiki/Message_Passing_Interface
                  люди эту технику годами осваивают/отлаживают.

                  1 ответ Последний ответ
                  0

                  • Войти

                  • Нет учётной записи? Зарегистрироваться

                  • Login or register to search.
                  • Первое сообщение
                    Последнее сообщение
                  0
                  • Категории
                  • Главная
                  • Документация
                  • Последние
                  • Пользователи