Возможности библиотечных функций в Mathematica

Я пытаюсь использовать CUSP в качестве внешнего линейного решателя для системы Mathematica, чтобы использовать возможности GPU. Вот веб-страница проекта CUSP. Я прошу подсказать, как мы можем интегрировать CUSP в систему Mathematica. Я уверен, что многим из вас будет интересно обсудить это. Я думаю, что написание входной матрицы и последующая подача ее в программу CUSP - это не то, что нужно. Использование LibrarayFunctionLoad системы Mathematica будет лучшим способом передачи входной матрицы решателю на GPU на лету. Каким будет способ подачи матрицы и матрицы правой стороны непосредственно из системы Mathematica?

Вот некоторый фрагмент кода CUSP.

#include 
#include 
#include 

int main(void)
{
// create an empty sparse matrix structure (HYB format)
cusp::hyb_matrix A;

// load a matrix stored in MatrixMarket format
cusp::io::read_matrix_market_file(A, "5pt_10x10.mtx");

// allocate storage for solution (x) and right hand side (b)
cusp::array1d x(A.num_rows, 0);
cusp::array1d b(A.num_rows, 1);

// solve the linear system A * x = b with the Conjugate Gradient method
cusp::krylov::cg(A, x, b);

return 0;
}

Этот вопрос дает нам возможность обсудить возможности компиляции в системе Mathematica 8. Также можно затронуть тему mathlink интерфейса MMA. Я надеюсь, что люди здесь найдут эту проблему достойной и достаточно интересной, чтобы поразмышлять над ней.

BR

9
задан PlatoManiac 28 September 2011 в 12:41
поделиться