Производительность вещь очень тонкая, и очень зависит от задачи.
Грубо говоря, две наиболее затратные операции — сборка линейной системы и её решение. Плюс все накладные расходы на копирование данных, лишние вызовы функций и прочее, что уже относится к области искусства программирования.
В случае LibMesh и Deal.II как раз недавно в их списках рассылки их разработчики обсуждали между собой этот вопрос. Смотрите соответственно:
http://ganymed.iwr.uni-heidelberg.de/pi ... 02342.html
и
http://www.mail-archive.com/libmesh-use ... 00126.html
Распараллелить решение линейной системы по MPI могут обе библиотеки. Точнее не они сами, а используемая ими обеими PETSc. Параллельная сборка линейной системы на SMP-машине возможна в deal.II, но буквально недавно появилась (появляется) и в LibMesh (находится в стадии разработки/тестирования). Совмещение же SMP-паралллизма c MPI-параллелизмом (с использованием PETSc) уже довольно сложно, потому что PETSc не является thread-safe библиотекой.
Разница, как я понимаю, сейчас больше лежит в наборе поддерживаемых элементов. В качестве документации и примеров. В личном вкусе, синтаксис какой библиотеки удобнее (нравится больше). Как я понимаю, LibMesh сейчас не умеет делать hp-адаптацию, а deal.II умеет. Зато с новой ParallelMesh LibMesh позволяет хранить только часть сетки на каждом из узлов кластера (deal.II пока так не умеет).
Обе библиотеки вроде бы работают и в Windows+CYGWIN. Но пользоваться GNU/Linux конечно проще (и быстрее;). Здесь список ОС и компиляторов на которых собирается и работает deal.II:
http://www.dealii.org/developer/readme.html А здесь списко компиляторов, которыми собирается LibMesh:
http://libmesh.sourceforge.net/installation.php Как можно видеть, почти все основные *NIX-системы поддерживаются.
Здесь я бы также не забывал и о GetFEM++, которая занимает ту же нишу высокоуровневой FEM-библиотеки для C++. Вот как сами разработчики GetFEM++ сравнивают себя с Deal.II:
http://home.gna.org/getfem/getfem_faq.html
Вкратце: Deal.II может работать только с отрезками/четырёхугольниками/шестигранниками (у LibMesh выбор шире), но зато поддерживает параллельность, есть возможности создавать и адаптировать сетки, поддерживается hp-адаптация; А в GetFEM++ зато много уже готовых, заранее запрограммированных методов, есть интерфейсы для Matlab и Python, возможность решать задачи любой размерности (не только 1-2-3D), но сетки надо генерировать внешними программами и никакой параллельности нет.