pymizu: biblioteca Python para paralelismo asincrónico de alta velocidad

Fuentes: pymizu: high-speed async and parallel Python library using shared memory

pymizu es una librería de Python diseñada para ofrecer rendimiento de paralelismo asincrónico y de hilos a través de la memoria compartida, superando significativamente la latencia de las conexiones de red. Al utilizar memoria compartida POSIX o mapeos de archivos Win32, pymizu reduce el tiempo de ida y vuelta de una tarea de aproximadamente 100 microsegundos a menos de 1 microsegundo, permitiendo una división de trabajo tan fina como la de los hilos tradicionales. Esta herramienta es particularmente útil para aplicaciones que requieren procesamiento de datos intensivo, ya que elimina la sobrecarga de serialización asociada a los procesos o sockets.

El proyecto se basa en libmizu, una biblioteca C para el intercambio de mensajes (IPC) basado en memoria compartida sin bloqueos. pymizu integra esta infraestructura con la interfaz de concurrent.futures.Executor de Python, lo que permite a los desarrolladores utilizar sus tareas de forma transparente sin cambios en el código existente. Además, ofrece compatibilidad nativa con asyncio, permitiendo el uso de await tasks y mapas asíncronos sin necesidad de bucle de polling. La librería soporta estructuras de datos comunes como listas, diccionarios, arrays de NumPy y tablas de Arrow, compartiendo datos entre Python y R de forma sin copia (zero-copy).

Entre sus características técnicas destaca la capacidad de ejecutar tareas paralelas reproducibles mediante números aleatorios con semilla, así como la posibilidad de mapeos paralelos anidados sin riesgo de bloqueo de muerte (deadlock). La interoperabilidad con R es un punto fuerte, permitiendo que los trabajadores sean procesos de R que ejecutan el paquete mizu, facilitando el análisis de datos estadísticos. El proyecto requiere Python 3.10 o superior en plataformas de 64 bits y se distribuye a través de PyPI, manteniendo un estado experimental en su API.