تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تم إنشاء Earth Engine استنادًا إلى أدوات Google وخدماتها لإجراء محاسبات على نطاق واسع. لتسهيل إجراء تحليلات جغرافية مكانية
كبيرة، تحجب منصة Earth Engine وواجهة برمجة التطبيقات الكثير من التعقيدات في البنية الأساسية للمعالجة المتوزية.
نظام EECU
نظرة عامة
وحدة الحوسبة في Earth Engine (EECU) هي آلية لتمثيل مقدار
طاقة المعالجة الفورية. تتتبّع أداة Earth Engine إجمالي أثر المهام الحسابي استنادًا إلى استخدامها لوحدة معالجة الطاقة الإلكترونية (EECU) بمرور الوقت (ثواني وحدة معالجة الطاقة الإلكترونية
وساعات وحدة معالجة الطاقة الإلكترونية وما إلى ذلك). لأنّ Google لديها العديد من الأنواع المختلفة من نوى المعالجات
والهياكل وغيرها إنّ وحدات المعالجة المركزية للطاقة الكهربائية هي نموذج مجرد مفيد للحديث عن
الطاقة الحسابية.
الحافز
غالبًا ما يريد مستخدمو الأجهزة الإلكترونية إجراء تقديرات بشأن مقدار طاقة المعالجة
المطلوبة لسير العمل، وتقدّم وحدات EECU مقياسًا متّسقًا لإجراء مقارنة.
المقارنة بمقاييس وحدة المعالجة المركزية
يمكن أن يتغيّر عدد الأجهزة وأنواعها وبنيتها التي تعمل على نتيجة معيّنة بمرور الوقت. بما أنّ النوى المادية المختلفة يمكن أن تمتلك ميزات أداء مختلفة، تُلخِّص Earth Engine جميع عمليات المعالجة باستخدام وحدات المعالجة المركزية للتطبيقات الإلكترونية.
لا تتوافق ساعة EECU (أو أي وحدة أخرى من وقت EECU) مع وقت الساعة المعروض على الحائط، لذا قد يكون وقت التشغيل المرصود لمهمة تستهلك 10 ساعات EECU هو
بضع دقائق فقط.
الثبات والقدرة على التنبؤ
قد يؤدي إرسال الطلبات نفسها (أو الطلبات المشابهة) إلى Earth Engine أحيانًا إلى اختلافٍ كبير في عمليات الحساب. تشمل الأسباب الشائعة للاختلافات ما يلي:
التخزين المؤقت، مثل إعادة استخدام نتائج العمليات الحسابية السابقة (بما في ذلك
النتائج الجزئية أو الوسيطة)
بيانات أساسية مختلفة، مثل أعداد مختلفة من صور الأقمار الصناعية،
أشكال هندسية بمستويات تعقيد مختلفة، وما إلى ذلك
تغييرات الخوارزمية على منصة EE، بما في ذلك تحسينات
الأداء وإصلاحات الأخطاء وما إلى ذلك
التغييرات في مكتبات العميل، خاصةً إذا كنت تعتمد على رمز أو حِزم ECMAScript الخاصة بالمستخدمين الآخرين
لا يوفّر Earth Engine مقاييس الأداء للطلبات أو المهام التي تعذّر إكمالها،
لأنّ هذه الأرقام ستكون غير دقيقة أو مضلِّلة. على سبيل المثال، إذا تعذّر إكمال مهمة لأنّ إحدى مهام العمال لم تعُد تستجيب، لن يتم احتساب استهلاك معالجة هذا العامل في الإجمالي.
أداة تحليل الأداء
يقدّم أداة تحليل الأداء معلومات عن وقت معالجة وحدة التحكّم في الطاقة واستخدام الذاكرة (لكل خطوة في الإجراء ومادّة عرض) الناتج عن العمليات الحسابية التي يتم إجراؤها عندما تكون الميزة مفعّلة. يتطابق كل صف في ناتج أداة تحليل الأداء مع خوارزمية أو عملية حسابية أو تحميل مواد عرض أو عملية إدارية كما هو موضّح في عمود "الوصف". في ما يلي الأعمدة في أداة تحليل الأداء:
الوصف
وصف نصي للحساب أو الخوارزمية أو تحميل مواد العرض أو
العملية الإضافية التي يتم تحليلها
الإحصاء
مؤشر يتناسب مع عدد مرّات استدعاء العملية الموضّحة
في "الوصف"
الحوسبة
مؤشر لوقت EECU الذي تستغرقه العمليات
المساحة المتوفّرة حاليًا
لا يظهر هذا العمود إلا إذا حدث خطأ بسبب النص البرمجي.
استخدام مساحة كبيرة جدًا من الذاكرة ويعرض مقدار الذاكرة المستخدَمة في أيّ
عُقدة حسابية واحدة في لحظة حدوث الخطأ.
ذاكرة الوصول العشوائي القصوى
الحد الأقصى للذاكرة المستخدَمة في أيّ عقدة حوسبة واحدة لإجراء العملية
في ما يلي اقتراح لتحويل سلسلة الملف الشخصي إلى جدول لتسهيل
التحليل في Colab وJupyter Notebooks (يُرجى العِلم أنّ هذا مجرد نهج واحد
وقد لا يكون مناسبًا لجميع الحالات):
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\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)"]]