PyPIM: Revolutionizing Python for In-Memory Computing
Researchers at Israel’s Technion Institute have devised a method to adapt conventional Python code to operate with a fundamentally new in-memory computing architecture. Their PyPIM converter enables the use of advanced data-processing techniques without the need to rewrite programs from scratch.
In traditional computers, computation resembles an endless cycle. A programmer writes code in a human-readable language, such as Python. A special translator converts this code into machine instructions understood by the processor. Then, the process begins: the processor fetches data from memory, processes it, and sends it back. Each operation requires time to transfer information—akin to a courier shuttling documents between two offices. Given today’s data volumes, these constant “journeys” introduce delays.
However, in-memory computing reduces the need for data transfers between the processor and memory, significantly accelerating processing and decreasing energy consumption. Over recent decades, the speed of processors and memory capacity has increased tremendously, exacerbating bottlenecks in data transmission between components. Professor Shahar Kvatinsky’s research aims to overcome this so-called “memory wall,” where data exchange between the processor and memory becomes the primary bottleneck.
For over eighty years, the fundamental principles of coding have remained largely unchanged. Yet, new computational methods demand a complete reevaluation of programming approaches.
Without a specialized converter, developing programs for such systems would be a nightmare. Developers would have to rewrite low-level machine code, allocating tasks between the processor and memory. PyPIM alleviates these challenges by automatically converting familiar Python commands into instructions executable directly within the machine’s memory. Offloading part of the computation reduces the volume of data transfers and accelerates overall system performance.
Thanks to this tool, programmers can continue to use familiar methodologies without the need for extensive code rewriting. They are spared from delving into the nuances of the new architecture. Additionally, a simulator has been developed to assess performance gains achieved with this new architecture. Technion researchers have demonstrated that applying PyPIM to tasks involving artificial intelligence and data analysis significantly reduces operation times.
PyPIM functions as an intermediate layer, much like DXVK, which translates DirectX commands into the Vulkan format.
Samsung and TSMC are already developing specialized modules based on MRAM cells to support in-memory computing. Despite the experimental nature of these advancements, manufacturers are steadily advancing toward commercial models. The Technion team’s invention has provided a powerful impetus for software development on this novel architecture. Beyond the practical solution, Technion has laid the theoretical groundwork for creating specialized programming languages.