Устройства Android сегодня настолько мощны, что вы можете практически использовать их как отдельный рабочий стол. У меня есть старый ноутбук Acer 5515 с одноядерным процессором AMD, у меня также есть четырехъядерный Android, и я хочу использовать его процессорную мощность (Android) для повышения производительности моего ноутбука. Я искал в Google, и на данный момент там никого нет. Так может кто-нибудь здесь предложить что-нибудь? Я могу кодировать на C # и Android, и я думал о передаче данных с помощью интерфейса USB /API.
3 ответа
Это фактически невозможно по нескольким причинам.
Прежде всего, это тот факт, что процессор вашего мобильного телефона и процессор ноутбука не имеют ничего общего. Они абсолютно разных архитектур и не совместимы по коду. Любой код, который вы хотите запустить на одном , не сможет запустить другой без большой работы.
Предположение, что ваш мобильный процессор такой же мощный, как настольный компьютер, также является ошибкой. Процессоры для мобильных телефонов созданы с низким энергопотреблением и, как правило, имеют процессоры мощностью <5 Вт, ноутбуки имеют процессоры> 35 Вт, а настольные ПК - до 100 Вт. Эти цифры не просто означают, что десктопы в значительной степени неэффективны, между процессорами для мобильных и настольных ПК сложность на порядок меньше.
Вы можете попытаться убедить меня, что они оба работают на Java, но Java является интерпретируемым языком и требует JIT-компилятора на машине, которая должна выполнять код. Этот компилятор должен быть адаптирован к архитектуре, на которой он работает, и функции, поддерживаемые в одном, не обязательно будут поддерживаться другим.
Даже если процессоры вашего телефона и ноутбука совместимы по архитектуре, это все равно непростая задача. Скажем, вы хотите, чтобы ваш телефон выполнял основную работу по воспроизведению видео или чего-то еще. Декодирование видео не так просто, как вы думаете. В вашем телефоне есть специальное оборудование, способное декодировать видео, и если вы хотите посмотреть его на своем компьютере, вам придется отправить обработанные данные обратно по сети на ваш компьютер. Это означает, что ему придется перекодировать его в то, что может обрабатывать ваш компьютер, и настолько мощным, насколько вы думаете, что ваш мобильный телефон, этот подвиг достаточно сложен для ряда настольных компьютеров и намного превосходит возможности вашего мобильного устройства в режиме реального времени.
Вы не можете просто "упаковать" небольшие кусочки работы и передать их в другое место, а затем вернуть их обратно без существенной инфраструктуры для поддержки. Причина, по которой это делает Folding @ Home, заключается в том, что они могут упаковать специальное программное обеспечение для запуска на каждой машине, а затем упаковать большие куски работы для каждой машины и отправить результат обратно. Для того, чтобы каждая "упаковка" стоила того, чтобы ее можно было разделить, прежде всего нужно потратить достаточно много времени, чтобы компенсировать стоимость упаковки. Нет никакого реалистичного способа упаковать небольшой объем работы, скажем, для отображения веб-страницы любым способом, который был бы быстрее, чем просто выполнять на ноутбуке.
Да, абсолютно вы можете сделать это. Но только если у вас есть среда Linux на обоих устройствах. Если ваш мобильный процессор имеет более 4 ядер или вы можете сказать, четырехъядерный. Потому что, если это меньше 4, то нет смысла делать все это дерьмо. Для этого вам нужно научиться открывать MPI(открытый интерфейс передачи сообщений). Это библиотека C, разработанная на базе Cisco и Amazon. Это также доступно в Java, но я предлагаю C поверх Java. Потому что C намного быстрее, чем Java, и здесь мы говорим о скорости. Открытый MPI обеспечивает распределенную обработку одной задачи. Вы также можете использовать более 1 смартфона. Где ваш один узел является главным узлом, обычно это компьютер или ноутбук, а другие станут подчиненными узлами. Ваш главный узел решит задачу, распределяет ее по подчиненным и возвращает вычисленные результаты из подчиненных. Даже вы можете использовать любой другой компьютер в качестве раба. Но, тем не менее, это очень и очень сложная задача, потому что вам нужно разработать программу для мастера, а также раба для каждой отдельной задачи, которую вы хотите выполнить.
Прошу прощения, если я допустил грамматическую ошибку. Я мало знаю английский.
Основная информация об открытом MPI:https://en.wikipedia.org/wiki/Open_MPI
Запуск кластера MPI в локальной сети:http://mpitutorial.com/tutorials/running-an-mpi-cluster-within-a-lan/
Пример:15418.courses.cs.cmu.edu/spring2013/article/22
Загрузить: www.open-mpi.org/software/ompi/v2.1/
На самом деле, это возможно, если у вас есть сервер сборки :-)
Лучший способ - установить полную среду Linux в Android. Приложение с именем полный установщик Linux может сделать это (root).
Но большинство дистрибутивов не предлагает кросс-компилятор. Кроме того, устройства ARM должны быть слабыми, чтобы обрабатывать настольную работу.
Если вы хотите улучшить свой опыт компиляции, да.
Но если общий опыт, это практически невозможно.