arrow
Return

Analyzing Linux on a Supercomputer

delete2025-03-01
delete0
PRE
AI
D
Diomidis Spinellis *
DOI:10.1109/MS.2024.3512732delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
The C preprocessor, a key element of the language, has become a liability due to its lack of integration with modern language semantics. This column describes the analysis of the C preprocessor usage in the Linux kernel, comprising 20 million lines of code, using the CScout refactoring browser. Processing limitations led to a solution leveraging a supercomputer's parallel processing capabilities. The analysis divided the kernel's source files across 32 supercomputer nodes and implemented a binary tournament database merging strategy. Initial efforts revealed multiple difficulties. Resolving them involved several false starts involving recursive SQL statements, an SQLite extension, and the GraphViz connected components tool. After a number of redesigns guided by stress-testing, the analysis finished in just 32 hours rather than a week, using 374 CPU hours and 640 GiB RAM on the supercomputer's nodes.

Journal

IEEE Software cover
IEEE Software
IF:
3
Papers:
3.1K
Citations:
3.6K

Organization

No organization information available