New answers tagged

3

The correct answer to your question, IMHO, is "depends on your target and your problem at hand". 1.) If your target is to simulate a large-scale problem on HPC and if you know of an existing code which can model the physics of your problem readily, then use the existing code. 2.) If an existing code does not yet support the physics of your problem ...


1

I would highly suggest you go with an available FEM open-source library (say deal.II, FENICS, MFEM, etc.) instead of writing your own FEM code and then using PETSC as the underlying parallel algebra library. First, the majority of open source HPC FEM code already use either PETSC or Trilinos under the hood (deal.II supports both, FENICS uses PETSC, etc.). ...


-2

To say you should just use open source is quite naive. I think it depends on what you are interested in. If you are interested in code development which should be published later I highly recommend implementing your own stuff. Here are some arguments: You know what you are doing! It often appears that something is not exactly implemented as you thought it ...


5

Why would you want to do things on your own? The libraries you mention have all been run on 10,000+ cores and under the hood use PETSc, Trilinos, hypre, ... for the solution of linear systems or use matrix-free approaches. You would have to invest tens of man-years of work to implement the functionality and optimizations that has gone into these libraries -- ...


0

You will have more control over things if you use PETSc. The most difficult part of writing a performant FE code is parallel assembly and solve and PETSc takes care of both. PETSc even has routines for managing unstructured meshes (DMPLEX). With other codes your choice of programming language, type of meshes/elements, etc. are somewhat limited. PETSc also ...


3

Effectively, what you are asking, is how to take advantage of a multicore architecture without parallelizing code yourself. There are no ideal solutions for that, most likely, you will have to parallelize the code yourself manually; otherwise, you are bound to use a single core. Nevertheless, there are a couple of things one can take advantage of: If your ...


1

Since you are interested in ResNet, you may want to check out this repo: https://github.com/steffi7574/LayerParallelLearning It is based on the idea of "parallel-in-layer" and uses XBraid to distribute the layers. It is not exactly PETSc or Trillinos, but it is close. I have looked into distributed learning, more specifically, model parallelism, ...


Top 50 recent answers are included