¿Puedo usar un procesador Android como Folding@Home para mejorar una computadora portátil vieja?

¿Puedo usar un procesador Android como Folding@Home para mejorar una computadora portátil vieja?

Los dispositivos Android son tan potentes hoy en día que prácticamente puedes usarlos como un escritorio independiente. Tengo una vieja computadora portátil Acer 5515 con un procesador AMD de un solo núcleo y también tengo un Android de cuatro códigos y quiero usar la potencia de su procesador (Android) para aumentar el rendimiento de mi computadora portátil. Busqué en Google y todavía no hay nadie disponible en este momento. ¿Alguien aquí puede sugerir algo? Puedo codificar en C# y Android y pensé en transferir datos usando una interfaz USB/API.

Respuesta1

Esto es efectivamente imposible por varias razones.

Lo primero y más importante es el hecho de que el procesador de su teléfono móvil y el de su computadora portátil no tienen casi nada en común. Son arquitecturas completamente diferentes y no son compatibles con el código. Cualquier código que quieras ejecutar en unono lo harápoder ejecutar el otro sinmuchode trabajo.

La suposición de que el procesador de su móvil es tan potente como el de una computadora de escritorio también es una falacia. Los procesadores de teléfonos móviles están diseñados para bajo consumo de energía y generalmente tienen procesadores de <5 vatios, las computadoras portátiles tienen procesadores de >35 vatios y las computadoras de escritorio de hasta 100 vatios. Esos números no solo implican que las computadoras de escritorio sean tremendamente ineficientes, sino que existe una diferencia de un orden de magnitud en la complejidad entre los procesadores móviles y de escritorio.

Puede intentar convencerme de que ambos ejecutan Java, pero Java es un lenguaje interpretado y requiere un compilador JIT en la máquina que ejecutará el código. Ese compilador debe adaptarse a la arquitectura en la que se ejecuta y las funciones admitidas en uno no necesariamente serán compatibles con el otro.

Incluso si tanto el procesador de su teléfono como el de su computadora portátil fueran compatibles con la arquitectura, esto todavía no es una tarea fácil. Digamos que quieres que tu teléfono haga el trabajo pesado de reproducir un video o algo así. La decodificación de vídeo no es tan fácil como crees. Su teléfono tiene hardware dedicado capaz de decodificar video, y si desea verlo en su computadora, deberá enviar los datos procesados ​​a través de la red a su computadora. Esto significa que tendría que volver a codificarlo en algo que su computadorapodríamanejar y por muy poderoso que creas que es tu móvil, esta hazaña es bastante difícil para varias computadoras de escritorio y mucho más de lo que tu móvil puede hacer en tiempo real.

No se puede simplemente "empaquetar" pequeños fragmentos de trabajo y canalizarlos a otra parte y luego recuperarlos sin una infraestructura importante que lo respalde. La razón por la que Folding@Home lo hace es porque pueden empaquetar una pieza de software dedicada para ejecutar en cada máquina, y luego empaquetar grandes porciones de trabajo para cada máquina y enviar el resultado. Para que valga la pena dividir cada "paquete", tiene que tomar una cantidad de tiempo razonablemente larga para compensar el costo del embalaje en primer lugar. No existe una forma realista de agrupar una pequeña cantidad de trabajo para, por ejemplo, mostrar una página web de una manera que sea más rápida que simplemente hacerlo en su computadora portátil en primer lugar.

Respuesta2

Sí, absolutamente puedes hacer esto. Pero sólo si tienes un entorno Linux en ambos dispositivos. Si el procesador de su móvil tiene más de 4 núcleos o puede decir cuatro núcleos. Porque si es menos de 4 entonces no tiene sentido hacer toda esta mierda. Necesita aprender MPI abierto (interfaz abierta de paso de mensajes) para esto. Esta es una biblioteca C desarrollada por Cisco y Amazon. También está disponible en Java, pero sugiero C en lugar de Java. Porque C es mucho más rápido que Java y aquí estamos hablando de velocidad. Open MPI proporciona procesamiento distribuido de una sola tarea. También puedes utilizar más de 1 teléfono inteligente. Donde su nodo es el nodo maestro, generalmente una computadora o computadora portátil y otros se convertirán en nodos esclavos. Su nodo maestro decidirá la tarea, la distribuirá a los esclavos y obtendrá los resultados calculados de los ungüentos. Incluso puedes usar cualquier otra computadora como esclava. Pero aun así es una tarea muy, muy difícil porque hay que desarrollar un programa tanto para el maestro como para el esclavo para cada tarea diferente que desee realizar.

Lo siento si cometí algún error gramatical. No sé mucho inglés.

Información básica sobre Open MPI: https://en.wikipedia.org/wiki/Open_MPI

Ejecutando un clúster MPI dentro de una LAN: http://mpitutorial.com/tutorials/running-an-mpi-cluster-within-a-lan/

Ejemplo: 15418.courses.cs.cmu.edu/spring2013/article/22

Descargar: www.open-mpi.org/software/ompi/v2.1/

Respuesta3

En realidad, es posible si tienes un servidor de compilación :-)

La mejor manera es instalar un entorno Linux completo en Android. Una aplicación llamada instalador completo de Linux puede hacer esto (raíz).

Pero la mayoría de las distribuciones no ofrecen compilador cruzado. Además, los dispositivos ARM son demasiado débiles para procesar el trabajo de escritorio.

Si desea mejorar su experiencia de compilación, sí.

Pero si tenemos experiencia general, es casi imposible.

Respuesta4

Es posible que se haga por software, debe ser específico y realizarse por elemento del kernel, de modo que cuando termine cada uno incluso antes de que olvide qué concepto abstrae para una entidad de codificación en particular, ya ha escrito/compilado, incluso documentado, el código fuente. Será una tarea realmente sangrienta si distribuyeras tareas de todo el sistema, así que hazlo por fragmentos, pero primero haz un resumen de cómo el sistema decide o prioriza a qué (primero) asignar la informática. Luego codifica por dispositivo agente, uf. Sería Es mucho más fácil si se trata de un software de utilidad que distribuye las tareas informáticas de la CPU y el dispositivo maestro actúa como un servidor en ese caso.

información relacionada