Programming paradigms for parallel finite element analysis and structural optimization