Many users think parallel processing is complex. Well, getting all those processors to cooperate isn't simple and it does require more effort than serial programming. However as with any complex activity, it is often a good idea to break down the complexity into simpler parts. Typically, the user has a lot of very similar items of work to do which don't require any interaction between them. The code below demonstrates a trivial example of this, where each processor reads and writes to its own files without any interaction with others.
All processors read a common parameters file.
Much of the parallelism effort is in getting the data into the files and putting data together to collect results. IO statements might need to be modified to read from a file with the work packet number included. Here, a letter has been appended to identify each packet, but users could form this identification in many other ways. In this example only one letter is used, so the maximum number of tasks processed at any one time is 26. In this example errors with the filesystem are caught and the code procedure exits.