next up previous contents
Next: Численные эксперименты Up: Начальные сведения о PETSc Previous: Вызовы PetscMalloc()   Contents

Повторное использование структур данных

Структуры данных, насколько это возможно, должны использоваться повторно. Например, если код часто создает новые матрицы или векторы, существует и способ повторного использования некоторых из них. Очень существенный выигрыш в производительности можно получить повторным использованием структур данных матриц с одинаковыми ненулевыми шаблонами. Если код создает тысячи объектов матриц или векторов, производительность будет падать. Например, при решении нелинейной задачи или повременном интегрировании повторное использование матриц и их ненулевой структуры для многих этапов может существенно ускорить программу.

Простой техникой для сохранения рабочих векторов, матриц и т.д. является введение пользовательских контекстов. В языках C и C++ такой контекст представляет собой структуру, в которой содержатся различные объекты; в Фортране пользовательский контекст может быть массивом целых чисел, содержащим параметры и указатели на объекты PETSc (См. ${PETSC_DIR}/snes/examples/
tutorials/ex5.c
и ${PETSC_DIR}/snes/examples/tutorials/ex5f.F с примерами пользовательских контекстов приложения на языках C и Фортран, соответственно).



2004-06-22