Earth Engine은 대규모로 계산을 실행하기 위한 Google의 도구와 서비스를 기반으로 구축되었습니다. 대규모 지리정보 분석을 쉽게 실행할 수 있도록 Earth Engine 플랫폼과 API는 기본 동시 처리 인프라의 복잡성을 대부분 숨깁니다.
EECU
개요
Earth Engine 컴퓨팅 단위 (EECU)는 순간 처리 능력의 양을 나타내는 메커니즘입니다. Earth Engine은 시간 경과에 따른 EECU 사용량 (EECU-초, EECU-시간 등)의 함수로 태스크의 총 계산 공간을 추적합니다. Google에는 다양한 유형의 프로세서 코어, 아키텍처 등이 있습니다. EECU는 컴퓨팅 성능을 논의하는 데 유용한 추상화입니다.
동기
EE 사용자는 워크플로에 필요한 처리 능력의 양을 추정하려고 하는 경우가 많으며 EECU는 비교를 위한 일관된 측정항목을 제공합니다.
CPU 측정항목과 비교
특정 결과에 관해 작업하는 머신의 수, 유형, 아키텍처는 시간이 지남에 따라 달라질 수 있습니다. 물리적 코어마다 성능 특성이 다를 수 있으므로 Earth Engine은 EECU를 사용하여 모든 처리를 추상화합니다.
EECU 시간 (또는 기타 EECU 시간 단위)은 실제 시간에 해당하지 않으므로 EECU 시간 10시간을 소비하는 작업의 관찰된 런타임은 단 몇 분일 수 있습니다.
안정성 및 예측 가능성
동일한 (또는 유사한) 요청을 Earth Engine에 전송하면 계산량이 매우 다를 수 있습니다. 차이를 유발하는 일반적인 요인은 다음과 같습니다.
이전 계산 결과 (부분 또는 중간 결과 포함) 재사용과 같은 캐싱
다양한 기본 데이터(예: 다양한 수의 위성 이미지, 다양한 복잡성의 도형 등)
성능 최적화, 버그 수정 등을 비롯한 EE 플랫폼의 알고리즘 변경사항
클라이언트 라이브러리 변경사항: 특히 다른 사용자의 EE 코드 또는 패키지에 종속되는 경우
Earth Engine은 실패한 요청/작업에 대한 실적 측정항목을 제공하지 않습니다. 이러한 수치는 부정확하거나 혼동을 줄 수 있기 때문입니다. 예를 들어 작업자 태스크가 응답하지 않아 작업이 실패하면 해당 작업자의 처리 사용량이 총계에 반영되지 않습니다.
프로파일러
프로파일러는 프로파일러가 사용 설정된 동안 실행된 계산으로 인해 발생한 EECU 시간 및 메모리 사용량 (알고리즘 및 애셋별)에 관한 정보를 제공합니다. 프로파일러 출력의 각 행은 '설명' 열에 설명된 대로 알고리즘, 계산, 애셋 로드 또는 오버헤드 작업에 해당합니다. 프로파일러의 열은 다음과 같습니다.
설명
프로파일링되는 계산, 알고리즘, 애셋 로드 또는 오버헤드 작업에 관한 텍스트 설명입니다.
개수
'Description'에 설명된 작업이 호출된 횟수에 비례하는 표시기입니다.
컴퓨팅
작업에 걸린 EECU 시간을 나타내는 지표입니다.
현재 메모리
이 열은 스크립트로 인해 오류가 발생한 경우에만 표시됩니다.
메모리를 너무 많이 사용했습니다. 오류가 발생한 시점에 단일 컴퓨팅 노드에서 사용 중인 메모리 양을 보여줍니다.
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[[["\u003cp\u003eEarth Engine Compute Units (EECUs) represent the amount of processing power used in Earth Engine, allowing users to estimate and compare computational needs for geospatial analysis.\u003c/p\u003e\n"],["\u003cp\u003eEECU-time is an abstract measure of work and doesn't directly equate to CPU or wall clock time due to Earth Engine's dynamic resource allocation.\u003c/p\u003e\n"],["\u003cp\u003eWhile Earth Engine strives for computational stability, factors like caching, data variations, algorithm updates, and client library changes can influence processing requirements.\u003c/p\u003e\n"],["\u003cp\u003eUsers can leverage the Earth Engine profiler to gain insights into EECU and memory usage for specific algorithms, asset loads, and operations within their scripts.\u003c/p\u003e\n"]]],[],null,["# Computation Overview\n\nEarth Engine is built on top of Google's tools and services for performing\ncomputations at a massive scale. To make it easy to run large geospatial\nanalyses, the Earth Engine platform and API hide much of the complexity of the\nunderlying parallel-processing infrastructure.\n\nEECUs\n-----\n\n### Overview\n\n| **Key Term:** *EECU* - Earth Engine Compute Unit, an abstraction of computing power.\n\nAn Earth Engine Compute Unit (EECU) is a mechanism for representing an amount of\ninstantaneous processing power. Earth Engine tracks the total computational\nfootprint of tasks as a function of their EECU usage through time (EECU-seconds,\nEECU-hours, etc.). Because Google has many different types of processor cores,\narchitectures, etc., EECUs are a useful abstraction for talking about\ncomputational power.\n\n### Motivation\n\nEE users often want to make estimates about the amount of processing power\nrequired for their workflows, and EECUs provide a consistent metric for making\ncomparisons.\n\n### Comparison with CPU metrics\n\n| **Note:** While EECU-seconds measure the amount of work that Earth Engine is performing, EECU-seconds don't correspond directly to CPU-seconds or wall clock seconds due to the fully managed nature of the service.\n\nThe number, type and architecture of machines working on a particular result can\nchange over time. Because different physical cores can have different\nperformance characteristics, Earth Engine abstracts all processing using EECUs.\nAn EECU-hour (or any other unit of EECU-time) doesn't correspond to a wall clock\ntime, so a job which consumes 10 EECU-hours may have an observed runtime of just\na few minutes.\n\n### Stability and predictability\n\nSending the same (or similar) requests to Earth Engine can sometimes result in\nvery different amounts of computation. Common drivers of differences include:\n\n- **caching**, such as reusing the results of previous computations (including partial or intermediate results)\n- **different underlying data**, such as varying numbers of satellite images, geometries of different complexity, etc.\n- **algorithm changes** on the EE platform, including performance optimizations, bugfixes, etc.\n- **changes to client libraries**, particularly if you depend on other users' EE code or packages\n\n### Benchmarks\n\nExplore [sample Earth Engine computation benchmarks](./computation_benchmarks).\n\n### Metrics for failed requests\n\nEarth Engine doesn't provide performance metrics for failed requests/tasks,\nsince these numbers would be inaccurate or misleading. As an example, if a job\nfails because a worker task became unresponsive, that worker's processing\nconsumption wouldn't be able to factor into the total.\n\nProfiler\n--------\n\nThe profiler provides information about EECU-time and memory usage (per\nalgorithm and asset) resulting from the computation performed while it's\nenabled. Each row in the profiler output corresponds to an algorithm,\ncomputation, asset load or overhead operation as described in the 'Description'\ncolumn. The columns in the profiler are:\n\nDescription\n: A textual description of the computation, algorithm, asset load or\n overhead operation being profiled.\n\nCount\n: An indicator proportional to the number of times the operation described\n in 'Description' was invoked.\n\nCompute\n: An indicator of EECU-time taken by the operation(s).\n\nCurrent Mem\n\n: This column appears only if there was an error because the script\n\n used too much memory. It shows the amount of memory in use on any single\n compute node at the moment the error occurred.\n\nPeak Mem\n\n: Maximum memory used on any single compute node for the operation.\n\n### Enabling the profiler\n\n### Code Editor\n\nUse the \"Run with Profiler\" button, as described in the [Code Editor\nguide](/earth-engine/guides/playground#profiler).\n\n### Python\n\nInclude the following code in your Python script to enable the profiler: \n\n with ee.profilePrinting():\n print(ee.Number(3.14).add(0.00159).getInfo())\n\nThe profile will be printed when the context ends, whether or not any error\noccurred within the context.\n\nTo capture the profile as a string, write the profile to a string buffer: \n\n import io\n\n out = io.StringIO()\n with ee.profilePrinting(destination=out) as p:\n print(ee.Number(3.14).add(0.00159).getInfo())\n\n print('Output:')\n print(out.getvalue())\n\nHere is a suggestion for turning the profile string into a table for easier\nanalysis in Colab and Jupyter Notebooks (note that this is just one approach\nand may not be suitable for all cases): \n\n import re\n import pandas as pd\n\n lines = out.getvalue().split('\\n')\n\n column_names = re.split(r'\\s{1,}', lines[0])\n column_names = [name.strip() for name in column_names if name.strip()]\n\n data = [\n [element for element in re.split(r'\\s{2,}', line) if element.strip()]\n for line in lines[1:-1]\n ]\n\n df = pd.DataFrame(data, columns=column_names)\n display(df)"]]