सामग्री पर जाएँ
DispatchAtlas
खोजें

पुनरुत्पाद्य कैंपेन

experiments/ कार्यक्षेत्र वह सब कुछ रखता है जो एक कैंपेन उत्पन्न करता है और वह सब कुछ जो उसे पुनरुत्पादित करने के लिए आवश्यक है। विभाजन कठोर है: व्यंजन ट्रैक होते हैं, आउटपुट स्थानीय होते हैं। कैंपेन विन्यास और रनर स्क्रिप्ट स्रोत नियंत्रण में रहते हैं; प्रत्येक भारी आउटपुट — उत्पन्न बेंचमार्क, रन रिकॉर्ड, लॉग, चेकपॉइंट, प्रमाण बंडल, और परिवेश स्नैपशॉट — उसे उत्पन्न करने वाली मशीन पर रहता है और व्यंजन से माँग पर पुनर्जनित होता है।

🗂️ लेआउट

पथट्रैक कियारखता है
configs/हाँकैंपेन विन्यास — पूर्ण व्यंजन: सॉल्वर सूची, बेंचमार्क सूट, रन गणनाएँ, बजट, और मास्टर सीड।
scripts/हाँकैंपेन और विश्लेषण रनर (उदाहरण के लिए run_smoke_pilot.py)।
benchmarks/नहींसाकार किए गए बेंचमार्क इंस्टेंस।
results/नहींरन रिकॉर्ड, results/{campaign_id}/{solver_id}/{benchmark_id}/run_{idx}.json पर।
logs/नहींनिष्पादन लॉग, logs/{campaign_id}_{YYYYMMDD_HHMMSS}.log पर।
.checkpoints/नहींपुनः-आरंभ-योग्य कैंपेन स्थिति, .checkpoints/{campaign_id}.json पर, विन्यास हैश द्वारा संरक्षित।
evidence-bundles/नहींक्यूरेट किए, प्रकटीकरण-स्तरीकृत निर्यात, evidence-bundles/{campaign_id}-{tier}/ पर।
ENVIRONMENT.mdनहींरनटाइम पर पकड़े गए होस्ट, OS, Python, और कमिट स्नैपशॉट।

आउटपुट निर्देशिकाएँ स्थानीय रूप से मौजूद रहती हैं और अनुपस्थित होने पर कैंपेन रनर द्वारा स्वतः पुनः-निर्मित होती हैं; उनके अंतर्गत कुछ भी कभी स्टेज नहीं किया जाता।

🧱 दो परतें, एक सत्य-स्रोत

  1. पुनरुत्पाद्यता परत (सूक्ष्म-स्तरीय)। प्रत्येक रन एक JSON रिकॉर्ड है, जो results/{campaign_id}/{solver_id}/{benchmark_id}/run_{idx}.json पर है। पथ स्वयं अनुक्रमणिका है — कैंपेन, फिर सॉल्वर, फिर बेंचमार्क, फिर प्रतिकृति — अतः प्रमाण का कोई भी अंश बिना डेटाबेस के पता-योग्य है। रिकॉर्ड प्रथम-श्रेणी समय, अभिसरण, समाधान, और सॉल्वर-प्रयास फ़ील्ड रखते हैं; कोई भी विश्लेषणात्मक चीज़ मुक्त-रूप टिप्पणियों में नहीं छिपती।
  2. क्यूरेशन परत (स्तरीकृत)। evidence-bundles/{campaign_id}-{tier}/ रन रिकॉर्डों से व्युत्पन्न प्रकटीकरण-स्तरीकृत निर्यात रखता है। स्तर पहचानकर्ता निश्चित सार्वजनिक-सुरक्षित शब्दावली से आते हैं — core, speed, quality, platform — और एक बंडल सदैव रन-स्तरीय रिकॉर्डों से व्युत्पन्न होता है, कभी स्वतंत्र सत्य-स्रोत नहीं।

🔁 पुनरुत्पाद्यता अनुबंध

  • प्रत्येक कैंपेन एक मास्टर सीड घोषित करता है; प्रत्येक रन की सीड उससे और रन की स्थिति से नियतात्मक रूप से व्युत्पन्न होती है — समान विन्यास, समान सीड, समान रिकॉर्ड, बिट-दर-बिट।
  • .checkpoints/{campaign_id}.json विन्यास हैश दर्ज करता है। एक अपरिवर्तित विन्यास चेकपॉइंट से पुनः-आरंभ होता है और पूर्ण रनों को छोड़ता है; कोई भी विन्यास परिवर्तन चेकपॉइंट को पूरी तरह अमान्य कर देता है।
  • ENVIRONMENT.md निष्पादन समय पर होस्ट, ऑपरेटिंग सिस्टम, Python, और रिपॉज़िटरी कमिट का स्नैपशॉट लेता है, अतः प्रत्येक परिणाम उसे उत्पन्न करने वाले सटीक कोड और मशीन तक ट्रेस-योग्य है।
  • लॉग प्रति निष्पादन केवल-संलग्न होते हैं।

ये अभ्यास — प्रति-रन सीड, विन्यास और परिवेश पकड़ ताकि परिणाम अपने व्यंजन से पुनर्जनित किया जा सके — संगणनात्मक प्रयोगों को प्रलेखित और पुनरुत्पादित करने के मान्यता-प्राप्त मानकों का अनुसरण करते हैं (ACM Artifact Review and Badging, Version 1.1, 2020; Gundersen & Kjensmo 2018)।

पुनरुत्पाद्यता मैनिफ़ेस्ट 30-रन तल को एक व्युत्पन्न सामर्थ्य कथन से भी न्यायोचित ठहराता है: तल पर, एक द्वि-पक्षीय 0.05 स्तर और 0.80 सामर्थ्य के साथ, युग्मित डिज़ाइन ARE-समायोजित Wilcoxon सन्निकटन के अंतर्गत लगभग 0.523 या उससे बड़े मानकीकृत प्रभावों का पता लगाता है (Noether 1987; ढाँचा: Campelo और Takahashi 2019)। वाक्य रेंडर समय पर तल से पुनर्गणित होता है, अतः यह उस तल से कभी विचलित नहीं हो सकता जिसे यह न्यायोचित ठहराता है। इसके साथ दो और प्रोटोकॉल विवरणक चलते हैं: एक बजट-मापन प्रविष्टि जो दर्ज करती है कि मूल्यांकन बजट इंस्टेंस आकार के साथ कैसे बढ़ता है (Vallada, Ruiz और Framiñan 2015 का आकार-मापित प्रोटोकॉल, प्रयोगशाला निष्पक्ष-तुलना मैनिफ़ेस्ट द्वारा एक मूल्यांकन-मापित नियम के रूप में या कैंपेन-स्थिर के रूप में दर्ज), और एक ट्यूनिंग-समता प्रविष्टि जो प्रत्येक तुलनात्मक कैंपेन द्वारा घोषित समान प्रति-एल्गोरिद्म ट्यूनिंग बजट वहन करती है (LaTorre, Molina, Osaba, Poyatos, Del Ser और Herrera 2021); एक अघोषित समता ईमानदारी से अघोषित के रूप में रेंडर होती है।

🏃 एक कैंपेन कार्यक्षेत्र में कैसे लिखता है

  1. configs/ के अंतर्गत एक कैंपेन विन्यास बनाएँ या समायोजित करें (smoke-pilot.json ट्रैक किया गया प्रारंभ-बिंदु है)।

  2. इसे कैंपेन रनर के माध्यम से चलाएँ — ट्यूटोरियल की तरह प्रोग्रामैटिक रूप से, एक ट्रैक की गई व्यंजन स्क्रिप्ट (uv run python experiments/scripts/run_smoke_pilot.py) के माध्यम से, या कमांड-लाइन इंटरफ़ेस के माध्यम से:

    uv run dispatchatlas-lab run --config experiments/configs/smoke-pilot.json
  3. रनर विन्यास को एक नियतात्मक योजना में मान्य करता है, results/{campaign_id}/plan.json और environment.json लिखता है, फिर प्रत्येक पूर्ण रन के लिए, साथ ही किसी भी विफल प्रयास के लिए, एक सामग्री-हैश किया रिकॉर्ड स्थायी करता है।

  4. results/ के अंतर्गत रन रिकॉर्डों का निरीक्षण करें और उसी विन्यास से पुनः-आरंभ करें, पुनर्प्रदर्शित करें, या पुनः चलाएँ। समान विन्यास पुनः चलाने पर समान रिकॉर्ड बिट-दर-बिट पुनरुत्पादित होते हैं; एक बदला हुआ विन्यास चेकपॉइंट को चुपचाप पुनः उपयोग करने के बजाय अमान्य कर देता है।

कैंपेन इंजन पृष्ठ मान्यता, ड्राई-रन बजट, निष्पादन मोड, पुनर्प्रयास, पुनः-आरंभ, और पुनर्प्रदर्शन सत्यापन को पूर्णतः प्रलेखित करता है।

📦 रन रिकॉर्डों से प्रमाण बंडलों तक

निर्यात पथ एक पूर्ण कैंपेन निर्देशिका को evidence-bundles/{campaign_id}-{tier}/ के अंतर्गत एक क्यूरेट बंडल में बदल देता है:

uv run dispatchatlas export `
  --campaign-dir .\experiments\results\smoke-pilot `
  --target-dir .\experiments `
  --authorized-output-root .\experiments `
  --tier core

tools/build_campaign_evidence.py उसी पथ को पैमाने पर चलाता है, एक दर्ज विन्यास से प्रत्येक स्तर के लिए बेंचमार्क कैटलॉग, कैंपेन, विश्लेषण, और बंडल बनाते हुए। प्रमाण बंडल पृष्ठ स्तरों का वर्णन करता है; विश्लेषण निर्यात सांख्यिकीय सामग्री का वर्णन करता है।

🔒 सार्वजनिक-सुरक्षित सीमा

सार्वजनिक पृष्ठ इस कार्यक्षेत्र को कभी सीधे नहीं पढ़ते: दस्तावेज़ साइट और परिणाम पोर्टल केवल क्यूरेट परत से उत्पन्न, प्रतिबद्ध, प्रकटीकरण-फ़िल्टर किए गए निर्यात का उपभोग करते हैं। कार्यक्षेत्र में निजी प्रोग्राम बहीखाते स्रोत नियंत्रण द्वारा अनदेखे किए जाते हैं और कभी किसी सार्वजनिक सतह तक नहीं पहुँचते।