Os dispositivos Android são tão poderosos hoje que você pode usá-los virtualmente como um desktop independente. Eu tenho um laptop Acer 5515 antigo com um processador AMD de núcleo único e também tenho um Android de código quádruplo e quero usar a potência do processador (Android) para aumentar o desempenho do meu laptop. Pesquisei no Google e ainda não há ninguém por aí neste momento. Então, alguém aqui pode sugerir alguma coisa? Posso codificar em c# e android e pensei em transferir dados usando interface/API USB.
Responder1
Isto é efetivamente impossível por vários motivos.
Em primeiro lugar, está o fato de que o processador do seu celular e o processador do seu laptop não têm quase nada em comum. São arquiteturas completamente diferentes e não são compatíveis com código. Qualquer código que você deseja executar em umnão vouser capaz de executar o outro sembastantede trabalho.
A suposição de que o seu processador móvel é tão poderoso quanto um desktop também é uma falácia. Os processadores de telefones celulares são construídos para baixo consumo de energia e geralmente têm processadores de <5 watts, os laptops têm processadores de mais de 35 watts e os desktops de até 100 watts. Esses números não implicam apenas que os desktops são extremamente ineficientes; há uma diferença de ordem de magnitude na complexidade entre os processadores móveis e de desktop.
Você pode tentar me dizer que ambos executam Java, mas Java é uma linguagem interpretada e requer um compilador JIT na máquina que executará o código. Esse compilador deve ser adaptado à arquitetura em que está sendo executado e os recursos suportados por um não serão necessariamente suportados pelo outro.
Mesmo que os processadores do seu telefone e laptop fossem compatíveis com a arquitetura, isso ainda não é uma tarefa fácil. Digamos que você queira que seu telefone faça o trabalho pesado de reproduzir um vídeo ou algo assim. A decodificação de vídeo não é tão fácil quanto você pensa. Seu telefone possui hardware dedicado capaz de decodificar vídeo e, se você quiser assisti-lo em seu computador, terá que enviar os dados processados de volta pela rede para seu computador. Isso significa que seria necessário recodificá-lo para algo que seu computadorpoderiae por mais poderoso que você pense que seu celular seja, esse feito é difícil o suficiente para vários desktops e muito além do que seu celular pode fazer em tempo real.
Você não pode simplesmente “empacotar” pequenos pedaços de trabalho e canalizá-los para outro lugar e depois recuperá-los sem uma grande infra-estrutura para apoiá-lo. A razão pela qual o Folding@Home faz isso é porque eles podem empacotar um software dedicado para ser executado em cada máquina e, em seguida, empacotar grandes partes de trabalho para cada máquina fazer e enviar o resultado de volta. Para que cada "pacote" valha a pena ser dividido, é necessário um tempo razoavelmente longo para compensar o custo da embalagem. Não há nenhuma maneira realista de agrupar a pequena quantidade de trabalho para, digamos, exibir uma página da Web de uma maneira que seja mais rápida do que simplesmente fazer em seu laptop.
Responder2
Sim, absolutamente você pode fazer isso. Mas somente se você tiver ambiente Linux em ambos os dispositivos. Se o seu processador móvel tiver mais de 4 núcleos ou você pode dizer quad core. Porque se for menos de 4, não há sentido em fazer toda essa merda. Você precisa aprender MPI aberto (interface aberta de passagem de mensagens) para isso. Esta é uma biblioteca C desenvolvida pela Cisco e pela Amazon. Também está disponível em java, mas sugiro C em vez de java. Porque C é muito mais rápido que Java e aqui estamos falando de velocidade. Open MPI fornece processamento distribuído de uma única tarefa. Você também pode usar mais de 1 smartphone. Onde seu único nó é o nó mestre, geralmente um computador ou laptop e outros se tornarão nós escravos. Seu nó mestre decidirá a tarefa, distribuirá aos escravos e receberá de volta os resultados calculados dos salvamentos. Até você pode usar qualquer outro computador como escravo. Mas ainda assim é uma tarefa muito difícil porque você tem que desenvolver um programa para mestre e também para escravo para cada tarefa diferente que deseja realizar.
Me desculpe se cometi algum erro gramatical. Não sei muito inglês.
Informações básicas sobre Open MPI: https://en.wikipedia.org/wiki/Open_MPI
Executando um cluster MPI em uma LAN: http://mpitutorial.com/tutorials/running-an-mpi-cluster-within-a-lan/
Exemplo: 15418.courses.cs.cmu.edu/spring2013/article/22
Baixar: www.open-mpi.org/software/ompi/v2.1/
Responder3
Na verdade, é possível se você tiver um servidor de compilação :-)
A melhor maneira é instalar um ambiente Linux completo no Android. Um aplicativo chamado instalador Linux completo pode fazer isso (root).
Mas a maioria das distros não oferece compilador cruzado. Além disso, os dispositivos ARM são muito fracos para processar o trabalho do desktop.
Se você quiser aumentar sua experiência de compilação, sim.
Mas se a experiência geral, é quase impossível.
Responder4
por software talvez seja feito, deve ser específico e feito por elemento do kernel, para que você termine cada um antes mesmo de esquecer qual conceito você abstraiu para uma entidade de codificação específica, você já digitou/compilou e até documentou o código-fonte. Será uma tarefa realmente sangrenta se você distribuir tarefas de todo o sistema, então faça isso por fragmento, mas faça um esboço primeiro de como o sistema decide ou prioriza o que (primeiro) alocar a computação. Em seguida, codifique por dispositivo de agente, ugh. muito mais fácil se for um software utilitário que distribui tarefas de computação da CPU e, nesse caso, o dispositivo mestre atua como um servidor.