[en] Access transparency means that both local and remote resources are accessed using identical operations. Transparency simpli es the complexity of programming a distributed system because the system is perceived as a whole rather than a collection of independent components. With access transparency, we can treat disaggregated compute, storage, and memory resources as if they were a single monolithic machine. This would considerably simplify the creation and execution of parallel applications in the Cloud in a scalable manner. In this work, we evaluate the feasibility of access transparency over state-of-the-art Cloud disaggregated resources. We propose an alternative implementation of Python's multiprocessing API that transparently runs distributed processes on serverless functions and that leverages disaggregated in-memory storage to maintain the shared state of processes consistent and mediate their communication. To evaluate transparency, we have used four parallel stateful applications intended to be executed locally (Uber Research's Evolution Strategies, Baselines-AI's Proximal Policy Optimization, Pandaral·lel's dataframe and ScikitLearn's Hyperparameter tuning), and, without changing the code, we have scaled them with serverless technology. We compare execution time and scalability of the same application running over disaggregated resources using our library, with the single-machine Python libraries in a large VM. Despite the higher latency and lower throughput of communication, we achieve comparable results and we observe that the applications can continue to scale beyond VM limited resources leading to a better speedup and parallelism.

[es] La transparencia de acceso significa que tanto los recursos locales como los remotos se acceden mediante operaciones idénticas. La transparencia simplifica la complejidad de programar un sistema distribuido porque el sistema se percibe como un todo y no como una colección de componentes independientes. Con la transparencia de acceso, podemos tratar los recursos de computación, almacenamiento y memoria desagregados como si fueran una única máquina monolítica. Esto simplificaría considerablemente la creación y ejecución de aplicaciones paralelas en la Nube de forma escalable. En este trabajo, evaluamos la viabilidad de la transparencia de acceso sobre recursos desagregados en la Nube de última generación. Proponemos una implementación alternativa de la API de multiprocesamiento de Python que ejecuta de forma transparente procesos distribuidos sobre funciones sin servidor y que aprovecha el almacenamiento desagregado en memoria para mantener consistente el estado compartido de los procesos y mediar en su comunicación. Para evaluar la transparencia, hemos utilizado cuatro aplicaciones paralelas con estado pensadas para ejecutarse localmente (Evolution Strategies de Uber Research, Proximal Policy Optimization de Baselines-AI, dataframe de Pandaral-lel e Hyperparameter tuning de ScikitLearn) y, sin cambiar el código, las hemos escalado con tecnología sin servidor. Comparamos el tiempo de ejecución y escalabilidad de la misma aplicación, ejecutándose sobre recursos desagregados usando nuestra librería, con las librerías Python de una sola máquina en una gran VM. A pesar de la mayor latencia y el menor rendimiento de la comunicación, logramos resultados comparables y observamos que las aplicaciones pueden seguir escalando más allá de los recursos limitados de la VM, lo que conduce a una mejor aceleración y paralelismo.