For my Java Applications class we were required to incrementally design a Java software system that could run Operating System commands in parallel. I chose Linux Ubuntu as my testing OS, however this program should technically be portable to any system with Java installed. I designed this program to incorporate modular components that do not contain dependencies among each other. This should allow quick concurrent execution of commands without much memory space collisions so long as the user does not define the OS commands to conflict.
This application also provides an editable text file, where a user can modify, add, or delete as many parallel “jobs” as they want to run. These “jobs” are essentially shell scripts that can be run sequentially. The standard output and error can also be retrieved by the user for use in their own program.
To test the program, I made 5 copies of the OS’s English dictionary file and used Grep’s regex packages to search and match words against 5 different tags. Each copy and search of a single dictionary was performed as a separate job (ran in parallel).
Here is a Github repository with source code for the components as well as the aforementioned testing program: