妥当なところはOpenMPかな。
#pragma omp parallel for schedule(dynamic,1)
for( int i = 0 ; i < 1000 ; ++i ) {
  char filename[100];
  sprintf(filename, "file%03d.dat", i);
  process(filename);
}
結構適当に書いたけど、こんな感じ?