다른 사람의 장치 리소스를 사용하여 소프트웨어 실행

다른 사람의 장치 리소스를 사용하여 소프트웨어 실행

나는 오래되고 약한 노트북(듀얼 코어 1.7Ghz)과 쿼드 코어 휴대폰(arm Cortex a7)을 가지고 있습니다. 둘 다 Linux를 실행합니다.

노트북에 있는 휴대폰 리소스를 사용하여 노트북의 콘텐츠를 실행(처리)할 수 있나요? 그런 프로그램이 있나요?

노트북은 x86 아키텍처를 사용하고 휴대폰은 ARM 아키텍처를 사용하는 것이 불가능합니까? 저는 사람들이 루팅된 Android 휴대폰에 LAMP 스택이나 Linux용으로 제작된 기타 프로그램과 같은 Android가 아닌 제품을 설치한다는 이야기를 읽었기 때문에 이것이 사실이라고 생각하지 않습니다.

이 모든 것이 어리석다고 생각하시나요? 그럴 수도 있으니까요. 인터넷 검색을 시도했지만 쓰레기 만 발견했습니다.

어떻게 하는지 아시는 분은 여기에도 적어주세요. 예를 들어 휴대전화의 리소스를 사용하여 데스크톱 버전의 Chrome을 실행하고 싶습니다. 이제 휴대폰의 RAM이 아닌 휴대폰의 CPU만 사용할 수 있습니다. 한 컴퓨터에서는 CPU를 사용하고 다른 컴퓨터에서는 RAM/스토리지를 사용하여 이것이 가능합니까? 내가 말하려는 것은 일종의 API이므로 휴대폰의 CPU에서 실행되는 프로세스가 다른 컴퓨터의 RAM에 액세스하고 있다는 사실조차 알지 못한다는 것입니다. 명백한 병목 현상은 네트워크 연결 속도입니다. 이 경우에는 WiFi입니다(전화기에는 분명히 유선 LAN이 없기 때문입니다). 저는 개인적으로 G 표준을 사용하지만, ac 표준은 초당 거의 2GB를 밀어넣을 수 있기 때문에 실제로 이 병목 현상 문제를 해결할 것 같습니다.

나는 모른다. 어떻게 생각하나요?

답변1

핵심 듀오가 휴대폰보다 낫다는 사실을 무시하고 USB를 통해 두 듀오 간에 X11을 전달할 수도 있습니다.이 위키여전히 관련성이 있을 수 있는 iOS 예의 경우) 휴대전화에 qemu 및 binfmt를 설치하여 크롬을 (천천히) 에뮬레이션하세요. 그렇지 않고 충분한 지식과 많은 시간이 있다면 데스크톱 Chrome을 휴대폰에 포팅할 수도 있습니다. 이를 원격으로 실행 가능하게 만들려면 X11과 같은 리소스에 액세스하고 안드로이드 휴대폰에서 Java 인터페이스를 사용해야 하기 때문에 아마도 데스크탑 스타일(예: 안드로이드가 아닌) Linux가 필요할 것입니다.

어쩌면 가능할지도 모르지만, 노력할 가치가 전혀 없다고 생각합니다. 저는 지금 코어 2 듀오를 실행하고 있습니다. 비록 64비트이지만 귀하의 것과는 달리 2GB의 RAM이 있고 잘 실행됩니다. 당신의 온전한 정신을 중요하게 생각한다면 휴대 전화를 휴대 전화로 삼으십시오.

명령줄 기반 프로그램과 같은 소규모 응용 프로그램을 사용하여 이 작업을 성공적으로 수행했습니다. 단지 나를 위해크로스 컴파일문제가 있는 프로그램 사용이 도구 체인. 이 프로그램은 git버전 관리 시스템과 혼동하지 않도록 이라는 대화형 소설 해석기입니다 . 나는 tcprelay(위키 페이지에 설명된) USB를 통해 내 iPhone에 SSH로 연결하고 이를 통해 게임을 실행하는 데 사용합니다. 그러나 실제로는 그럴 가치가 없으며 어쨌든 USB가 병목 현상이 될 것입니다.

답변2

병렬화가 어렵습니다. 자동 병렬화는 아직 해결되지 않은 연구 주제입니다. 병렬화라는 당혹스러운 문제(예, 기술 용어입니다)를 제외하면 병렬화에는 거의 인간의 지도가 필요하며 인간의 지도가 있어도 어렵습니다. 병렬화가 어려운 이유는 작업을 다른 프로세서에 디스패치하면 많은 오버헤드가 추가되고, 프로세서는 결국 다른 프로세서가 필요한 리소스를 해제하거나 쿼리에 응답할 때까지 기다리는 데 많은 시간을 소비하게 되기 때문입니다. 병렬 실행으로 인한 총 시간 이득이 동기화 오버헤드보다 큰 경우에만 병렬 실행이 가치가 있습니다. 이것이 의미하는 바는 두 컴퓨터 사이에 작업을 분배하는 마법 같은 방법이 없다는 것입니다. 어떤 프로그램을 어떤 컴퓨터에서 실행할지 결정해야 합니다.

이 프로그램은 휴대폰의 CPU와 PC의 RAM을 사용할 수 없습니다. 한 자동차의 바퀴를 사용하여 다른 자동차의 축을 움직일 수 없는 것처럼 이것은 이렇게 작동하지 않습니다. 한 컴퓨터 또는 다른 컴퓨터에서 실행할 수 있습니다. (RAM을 API로 추상화할 수 있지만 속도는 나노초가 아닌 밀리초로 매우 느립니다.)

휴대폰에서 프로그램을 실행하고 PC에서 프로그램과 상호 작용할 수 있으며 그 반대의 경우도 마찬가지입니다. 즉, 프로그램 실행과 해당 인터페이스가 호스팅되는 위치를 분리할 수 있습니다. 이를 위해 다음과 같은 여러 메커니즘이 존재합니다.

  • 아시아개발은행USB를 통해
  • SSH네트워크를 통해 연결(휴대폰에 클라이언트, 서버 또는 둘 다를 설치할 수 있음)
  • X11 전달SSH를 통한 GUI 프로그램의 경우

휴대폰과 PC는 프로세서 아키텍처가 다르기 때문에 동일한 바이너리를 실행할 수 없습니다. 거의 모든 Linux 소프트웨어는 지원되는 모든 프로세서 아키텍처에서 실행될 수 있지만 다르게 컴파일됩니다. 사람들이 ARM 프로세서가 탑재된 전화기에 Apache와 같은 소프트웨어를 설치하면 실제로는 ARM 바이너리를 설치하는 것입니다. 예를 들어, 많은 PC 배포판에는 32비트 및 64비트 PC 버전 외에 하나 이상의 ARM 버전이 있습니다.데비안 안정 버전현재 다음을 포함하여 10개의 프로세서 아키텍처를 지원합니다.i386(PC의 경우) 및팔 수소 남편(휴대폰의 경우).

휴대폰 에뮬레이터에서 PC 바이너리를 실행할 수 있으며 그 반대의 경우도 마찬가지입니다. 예를 들어, Google의 Android 에뮬레이터는 다음을 기반으로 합니다.QEMU, QEMU는 ARM 프로세서를 시뮬레이션하는 데 사용됩니다. QEMU는 x86 프로세서를 시뮬레이션하고 ARM 프로세서에서 실행할 수도 있습니다. 그러나 귀하의 경우 에뮬레이션은 기본 바이너리를 실행하는 것보다 훨씬 느리기 때문에 의미가 없습니다.

컴퓨터와 휴대폰 시계의 주파수는 대략 동일합니다. 클럭 주파수는 프로세서 아키텍처 전반에 걸쳐 비교할 수 없으며 심지어 동일한 명령 세트를 사용하는 프로세서 설계 간에도 비교할 수 없습니다. 프로세서 설계에 따라 각 명령에 필요한 클럭 사이클 수가 결정되기 때문입니다. 어느 것이 가장 빠른지는 작업에 따라 다르지만그들은 같은 경기장에 있다. 4개의 CPU를 사용하여 병렬화할 수 있는 작업은 거의 없으므로 이 숫자는 대부분의 작업과 관련이 없습니다. 한 컴퓨터에서 다른 컴퓨터로 데이터를 오프로드하는 오버헤드를 고려할 때 휴대폰에서 계산을 오프로드하는 것은 대규모 병렬 작업에만 유용하며 모바일 프로세서는 PC 프로세서보다 빠릅니다. 이러한 병렬 작업의 경우그래픽 프로세서더 나은 선택일 수 있습니다(GPU는 병렬 컴퓨팅에는 좋지만 메모리 액세스에는 좋지 않습니다).

관련 정보