Add more MPI_Send and MPI_Recv wrappers.
Add one for master to send data. Add one for slave to send data. Change Slave_Get_Msg() to Slave_Get_Data(), which will pull in an array of up to 10 entries.
Add statement to deal with MSG_CONTINUE.
Send a default of continue back to the sender.
Add case to deal with done processors.
First, receive data from a running process. Then, hand it off to the finished process.
Add comments to MSG_CONTINUE handler.
Add end condition to Master_Loop().
When the number of completed processes is equal to the number of processes, then it's done.
Replace 10 with MAX_LEVEL.
Find every instance where 10 is used as a level comparison and replace it with MAX_LEVEL so that you can easily change how many exercises are in your set.
Add Parallel_Sets_Mixed().
Parallel_Sets_Mixed() starts MPI and distributes processes into Master and Slave roles.
Begin writing a Slave() function.
Every slave process should run this function. It should loop them through until they are done.
Complete exit condition of Master_Loop().
After Master_Loop() completes, the master will send out messages to all of the slaves telling them that they can finish.
Add initializations to Slave().
Included done_list, which is used for storing completed sets of problems so that each thread can check whether a set has been checked.
Begin OpenMP parallel section.
Also, fix some odd pointer style issues.
Add shell for Slave_Driver and for Start_Task.
Also, fix lots of function parameters.
Add Start_Task().
Allows Slave_Driver to make tasks from the integers it receives for its start and end values.
Fix Slave() parameters.
X is not needed in Slave() or in Parallel_Sets_Mixed(), as it is made later.
Fix more parameter problems.
Slave_Driver() and Start_Task() both needed to have A.
Finish Start_Task().
Fix a bunch of stuff.
From function arguments to semicolons, we've got it all.
Add new documentation comments to Sets_Recurse().
New arguments were added, so new comments were needed.
Complete Num_Construct().
Num_Construct() turns the X set into a set of two numbers: level and n. Level is given, and it returns n.
Add loop for slave master to run through.
Will only run through the loop when all other processes are done. Thus, this particular task cannot communicate with the master process until all of its threads are done. Todo: make all threads communicate with the master process.