Reviewed by Aditya Kumar · Last reviewed 2026-03-24
**Why Multiprocessing vs Threading:** GIL limits threading to single-core CPU for CPU-bound work. Multiprocessing spawns separate processes—true parallelism, each with own GIL. Use for: CPU-bound (numeric, parsing), NOT for I/O-bound (use asyncio/threading). **Scalability...
This hard-level Python/Coding question appears frequently in data engineering interviews at companies like NAB. While less common, it tests deeper understanding that distinguishes strong candidates. Mastering the underlying concepts (partition, python, window) will help you answer variations of this question confidently.
This is a senior-level question that tests architectural thinking. Lead with the high-level design, then drill into specifics. Discuss trade-offs explicitly - there is rarely one correct answer. Show awareness of scale, fault tolerance, and operational complexity.
Why Multiprocessing vs Threading: GIL limits threading to single-core CPU for CPU-bound work. Multiprocessing spawns separate processes—true parallelism, each with own GIL. Use for: CPU-bound (numeric, parsing), NOT for I/O-bound (use asyncio/threading).
Scalability Trade-offs: (1) Process spawn overhead: ~50–100ms each—amortize over chunk size. (2) IPC: Queue/Pipe have serialization cost; shared memory (multiprocessing.Value) for large arrays. (3) Pool.map: simple but materializes all results—use imap for streaming. (4) On Windows: if __name__ == '__main__' is mandatory (spawn semantics).
Cost: 4 workers = 4x memory. For data pipelines: partition data, process in parallel, avoid sending huge objects between processes.
from multiprocessing import Pool
with Pool(4) as pool:
results = pool.map(process_chunk, chunks)
Red Flag: Using Pool for I/O-bound API calls. Pro-Move: 'We use ProcessPoolExecutor for Pandas transform on 100 files; ThreadPoolExecutor for API fetches—right tool per bottleneck.'
Some links below are affiliate links. If you buy through them we may earn a small commission at no extra cost to you — it helps keep DataEngPrep free.
According to DataEngPrep.tech, this is one of the most frequently asked Python/Coding interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.