© 2026 InterSystems Corporation, Cambridge, MA. All rights reserved.Privacy & TermsGuaranteeSection 508Contest Terms
submission
Identifies astronomical objects with >100% brightness change from Gaia DR3 epoch photometry data.
.csv.gz files and compiles a C extension for fast CSV field extractionprocess_cext.py which:
fast_extract.c) scans raw bytes to extract only 3 needed columns (source_id, bp_flux, rp_flux) from 47 total — skipping 94% of each rowjson.loads parses flux arrays (C-level JSON parser, handles NaN replacement)((max_flux - min_flux) / min_flux) * 100 for both BP and RP bands~0.38s on IRIS Docker (amd64 emulated), ~0.50s locally on M4 Max.
git clone
cd
docker-compose up --build -d
docker-compose exec iris iris session iris -U USER "do ^RunScript"
Output: data/out/results.csv
RunScript.mac
└→ $ZF → irispython process_cext.py
├→ fast_extract.c (C extension: byte-level CSV field extraction)
├→ json.loads (C-level array parsing)
├→ multiprocessing.Pool (parallel file processing)
└→ results.csv (sorted by percentage_change DESC)
split()+float().An experimental version using a C extension that parses flux arrays directly into NumPy buffers via strtod, bypassing json.loads entirely. Combined with np.nanmin/np.nanmax for vectorized computation.
Files: src/numpy_optimization/fast_parse_np.c, src/numpy_optimization/process_cnp.py
.csv.gz files are decompressed to data/temp/ during docker-compose up --build. Since the Dockerfile already needed modification to compile the C extension, I added decompression there as well (~0.2s savings at runtime). If this is considered unfair, the solution can trivially decompress at runtime by adding gzip.open instead of open in process_cext.py.fast_extract.c is compiled into a shared library during build. This is a necessary build step — C code cannot be compiled at runtime within do ^RunScript.iris.script (Docker build): The routine is compiled once so do ^RunScript works immediately.See https://github.com/isc-gdimaki/challenge_1_submission/blob/main/APPROACH.md for a full log of approaches tried, benchmarks, and reasoning behind design choices.