Resumen:
|
El uso de MATLAB, como herramienta de software matemático, se ha extendido en los campos de la
ingeniería y la ciencia, por lo que es frecuente que muchos algoritmos de cálculo se escriban en
MATLAB, con su lenguaje de ...[+]
El uso de MATLAB, como herramienta de software matemático, se ha extendido en los campos de la
ingeniería y la ciencia, por lo que es frecuente que muchos algoritmos de cálculo se escriban en
MATLAB, con su lenguaje de programación M.
Esto se debe a la sencillez que ofrece el lenguaje M para programar algoritmos matemáticos. Sin
embargo, cuando se ejecutan dichos algoritmos, MATLAB hace de intermediario entre su código y el
procesador, lo que acarrea un sobrecoste en los tiempos de ejecución. Y si el algoritmo incluye
computación pesada, los tiempos pueden convertirse en un problema para trabajar.
Afortunadamente, la empresa MathWorks, responsable de la herramienta MATLAB y su lenguaje M,
publicó, entre otras, la librería MEX. Una librería que permite programar subrutinas en los lenguajes
de programación C, C++ y Fortran, para posteriormente ser llamadas desde MATLAB. Gracias a esto
se puede aprovechar la eficiencia de cálculo de lenguajes tan conocidos como los tres mencionados
y, a su vez, seguir trabajando desde MATLAB.
Este trabajo se centra en el algoritmo de “Cuantificación de parámetros de perfusión mediante los
modelos monocompartimental y farmacocinético”. Este algoritmo calcula una serie de parámetros a
partir de una secuencia de imágenes 3D. Dicha cuantificación incluye operaciones con matrices de
varios millones de elementos y resolución de problemas de optimización no lineal; lo que supone una
carga de cálculo excesiva para MATLAB.
Como muestra de esta poca eficacia de cálculo, el tiempo de ejecución medio de dicho programa en
un ordenador de trabajo se sitúa entre unas 3 y 5 horas. Estos tiempos son demasiado elevados, así
que para resolver este problema se propone la adaptación de este algoritmo al lenguaje de programación
C++. Se espera que este nuevo programa externo reduzca drásticamente los tiempos de ejecución.
[-]
|