Folding@Home과 같은 Android 프로세서를 사용하여 오래된 노트북 성능을 향상할 수 있나요?

Folding@Home과 같은 Android 프로세서를 사용하여 오래된 노트북 성능을 향상할 수 있나요?

오늘날 Android 장치는 매우 강력하여 사실상 독립 실행형 데스크탑으로 사용할 수 있습니다. 나는 단일 코어 AMD 프로세서를 탑재한 오래된 Acer 5515 노트북을 가지고 있고 쿼드 코드 안드로이드도 가지고 있으며 프로세서 성능(안드로이드)을 사용하여 노트북 성능을 향상시키고 싶습니다. 구글에 검색해보니 아직 사람이 없네요. 그럼 여기 누구든지 제안할 수 있나요? 저는 C#과 안드로이드로 코딩할 수 있고 USB 인터페이스/API를 사용하여 데이터를 전송하는 것을 생각했습니다.

답변1

이는 여러 가지 이유로 사실상 불가능합니다.

무엇보다도 휴대폰 프로세서와 노트북 프로세서는 공통점이 거의 없다는 사실입니다. 그것들은 완전히 다른 아키텍처이며 코드와 호환되지 않습니다. 하나에서 실행하려는 모든 코드~하지 않을 것이다없이 다른 하나를 실행할 수 있습니다많이일의.

모바일 프로세서가 데스크탑만큼 강력하다는 가정도 오류입니다. 휴대폰 프로세서는 저전력용으로 제작되었으며 일반적으로 5와트 미만의 프로세서를 사용하고, 노트북은 35와트 이상의 프로세서를, 데스크탑은 최대 100와트를 사용합니다. 이러한 수치는 데스크탑이 엄청나게 비효율적이라는 것을 의미할 뿐만 아니라 모바일 프로세서와 데스크탑 프로세서 사이의 복잡성에 엄청난 차이가 있다는 것을 의미합니다.

둘 다 Java를 실행한다는 점을 시도해 볼 수 있지만 Java는 해석된 언어이며 코드를 실행하는 시스템에 JIT 컴파일러가 필요합니다. 해당 컴파일러는 실행 중인 아키텍처에 맞게 조정되어야 하며, 한 컴파일러에서 지원되는 기능이 반드시 다른 컴파일러에서 지원되는 것은 아닙니다.

휴대폰과 노트북 프로세서가 모두 아키텍처와 호환되더라도 이는 여전히 쉬운 작업이 아닙니다. 휴대폰이 비디오 재생 등의 주요한 작업을 수행하길 원한다고 가정해 보겠습니다. 비디오 디코딩은 생각만큼 쉽지 않습니다. 귀하의 휴대폰에는 비디오를 디코딩할 수 있는 전용 하드웨어가 있으며, 컴퓨터에서 이를 보려면 처리된 데이터를 네트워크를 통해 컴퓨터로 다시 보내야 합니다. 이는 컴퓨터의 무언가로 다시 인코딩해야 함을 의미합니다.~할 수 있었다모바일이 처리하고 강력하다고 생각하는 만큼 이 기능은 여러 데스크톱에서 충분히 어렵고 모바일이 실시간으로 수행할 수 있는 것 이상입니다.

작은 작업을 단순히 "패키지"하여 다른 곳으로 연결한 다음 이를 지원하는 주요 인프라 없이 다시 가져올 수는 없습니다. Folding@Home이 이를 수행하는 이유는 모든 컴퓨터에서 실행될 전용 소프트웨어를 패키지화한 다음 각 컴퓨터에서 수행할 큰 작업 덩어리를 패키지화하고 결과를 다시 보낼 수 있기 때문입니다. 각 "패키지"를 분리할 가치가 있으려면 우선 포장 비용을 상쇄하기 위해 합리적으로 오랜 시간이 걸립니다. 예를 들어 처음에 랩톱에서 수행하는 것보다 더 빠른 방식으로 웹 페이지를 표시하기 위해 소량의 작업을 패키지화할 수 있는 현실적인 방법은 없습니다.

답변2

네, 물론 가능합니다. 그러나 두 장치 모두에 Linux 환경이 있는 경우에만 해당됩니다. 모바일 프로세서에 4개 이상의 코어가 있는 경우 쿼드 코어라고 할 수 있습니다. 왜냐하면 그것이 4보다 작다면 이 모든 짓을 할 의미가 없기 때문입니다. 이를 위해서는 개방형 MPI(개방형 메시지 전달 인터페이스)를 배워야 합니다. 이것은 Cisco와 Amazon이 개발한 C 라이브러리입니다. Java에서도 사용할 수 있지만 Java보다는 C를 권장합니다. C는 Java보다 훨씬 빠르기 때문에 여기서는 속도에 대해 이야기하고 있습니다. Open MPI는 단일 작업의 분산 처리를 제공합니다. 1대 이상의 스마트폰을 사용할 수도 있습니다. 한 노드가 마스터 노드인 경우 일반적으로 컴퓨터나 노트북이고 다른 노드는 슬레이브 노드가 됩니다. 마스터 노드는 작업을 결정하고, 슬레이브에 분배하고, 구원에서 계산된 결과를 돌려받습니다. 다른 컴퓨터를 슬레이브로 사용할 수도 있습니다. 그러나 수행하려는 각 작업에 대해 마스터 및 슬레이브용 프로그램을 개발해야 하기 때문에 여전히 매우 어려운 작업입니다.

제가 문법적인 실수를 했다면 죄송합니다. 저는 영어를 잘 모릅니다.

Open MPI에 대한 기본 정보: https://en.wikipedia.org/wiki/Open_MPI

LAN 내에서 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/

답변3

실제로 빌드 서버가 있다면 가능합니다 :-)

가장 좋은 방법은 Android에 전체 Linux 환경을 설치하는 것입니다. 완전한 Linux 설치 프로그램이라는 앱이 이 작업을 수행할 수 있습니다(루트).

그러나 대부분의 배포판은 크로스 컴파일러를 제공하지 않습니다. 또한 ARM 장치는 데스크톱 작업을 처리하기에는 약합니다.

컴파일 경험을 향상시키고 싶다면 그렇습니다.

하지만 전반적인 경험으로 보면 거의 불가능합니다.

답변4

소프트웨어별로 수행할 수도 있지만 커널 요소별로 구체적이고 수행되어야 합니다. 따라서 특정 코딩 엔터티에 대해 추상화한 개념을 잊어버리기 전에 각 작업을 완료하면 이미 입력/컴파일했으며 소스 코드도 문서화했습니다. 전체 시스템의 작업을 분산한다면 정말 피나는 작업이 될 것이므로 조각별로 수행하되 먼저 시스템이 컴퓨팅을 할당할 대상(먼저)을 결정하거나 우선 순위를 지정하는 방법을 개요로 만든 다음 에이전트 장치당 코드를 작성합니다. CPU 컴퓨팅 작업을 분산하는 유틸리티 소프트웨어이고 이 경우 마스터 장치가 서버처럼 작동하는 경우 훨씬 쉽습니다.

관련 정보