Manejo distribuido de matrices a gran escala en un equipo HPC

Contenido principal del artículo

Adrián Durán Chavesti
https://orcid.org/0000-0002-0542-1627

Resumen

La necesidad de computación de alto rendimiento se refiere a la práctica de utilizar recursos de cómputo más potentes que una computadora personal o servidor típico para abordar problemas complejos que requieren grandes cantidades de procesamiento. Una gran parte de las operaciones a resolver son matrices a gran escala. Por esta razón, se implementó un ambiente de clúster de servidores con la herramienta “Servidor Paralelo de MATLAB”, que permitió mostrar cómo es que se pueden manejar matrices de gran tamaño de forma paralela y distribuida haciendo uso de un equipo de cómputo de alto rendimiento y el lenguaje de alto nivel MATLAB.


Se logró manejar y distribuir un par de matrices de 49,000 x 49,000 elementos. En contraste, una computadora personal típica con 16 GB de memoria sólo puede manejar un par de matrices de 23,000 x 23,000 elementos.


Este trabajo permitió verificar la facilidad y flexibilidad con la cual se puede escalar un problema usando servidores conectados en red con la herramienta “Servidor Paralelo de MATLAB”. Esto se logra usando el mismo algoritmo y añadiendo más servidores a la configuración del clúster. En esta implementación, se usó un sistema de tres nodos conectados en una red local, por lo que, si quiere reproducir, se recomienda, antes empezar la instalación, tener a la mano la licencia para poder distribuir MATLAB.


El nivel de escalado del clúster va a estar relacionado directamente con el número de servidores que se tengan disponibles. En este caso, han sido beneficiados tres usuarios de la línea de investigación en cómputo de alto rendimiento. El sistema operativo usado fue Linux Ubuntu Server 24.04 LTS y el software MATLAB R2024a.

Descargas

Los datos de descargas todavía no están disponibles.

Detalles del artículo

Cómo citar
Durán Chavesti, A. (2026). Manejo distribuido de matrices a gran escala en un equipo HPC. Cuadernos Técnicos Universitarios De La DGTIC, 4(2). https://doi.org/10.22201/dgtic.30618096e.2026.4.2.150
Sección
Reportes técnicos
Biografía del autor/a

Adrián Durán Chavesti, Instituto de Investigaciones en Matemáticas Aplicadas y en Sistemas, UNAM

.

Citas

Delfino, M. (2020). Distributed Computing. En C.W. Fabjan & H. Schopper (Eds.), Particle Physics Reference Library (pp. 613-644). Springer. https://doi.org/10.1007/978-3-030-35318-6_14

Foster, I. (1995). Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Addison-Wesley.

https://edoras.sdsu.edu/~mthomas/docs/foster/Foster_Designing_and_Building_Parallel_Programs.pdf

Gu, R., Tang, Y., Tian, C., Zhou, H., Li, G., Zheng, X., & Huang, Y. (2017). Improving Execution Concurrency of Large-Scale Matrix Multiplication on Distributed Data-Parallel Platforms, IEEE Transactions on parallel and distributed systems, 28(9), 2539 – 2552.

HouZhen, W., Yan, G., & HuanGuo, Z. (2020). A Method of Ultra-Large-Scale Matrix Inversion Using Block Recursion. Information, 11(11), 523. https://doi.org/10.3390/info11110523

Lim, R., Lee Y., Kim, R., & Choi, J. (2018). An implementation of matrix–matrix multiplication on the Intel KNL processor with AVX-512. Cluster Computing. 21, 1785–1795. https://doi.org/10.1007/s10586-018-2810-y

MathWorks. (s. f.). Distributed arrays. Recuperado de https://la.mathworks.com/help/parallel-computing/distributed-arrays.html

MathWorks. (s.f.). Get started with MATLAB. Recuperado de https://la.mathworks.com/help/matlab/getting-started-with-matlab.html

MathWorks. (s. f.). MATLAB Parallel Server [Documento digital]. Recuperado de https://la.mathworks.com/help/pdf_doc/matlab-parallel-server/matlab-parallel-server.pdf

MathWorks. (s. f.). Parallel Computing Toolbox [Documento digital]. Recuperado de https://la.mathworks.com/help/pdf_doc/parallel-computing/parallel-computing.pdf

Westrick, S., Fluet, M., Rainey, M., & Acar U. (2024). Automatic Parallelism Management. Proceedings of the ACM on Programming Languages, 8, 1118 – 1149. https://doi.org/10.1145/3632880