The Jacobi method is used due to its ease of parallelisation. A Divide and Conquer approach is adopted.
Initially each of the values of x are given a value; in this case 0.
A new value for each x is then determined by evaluating each equation.
The new estimates are then plugged into equations and the process repeated until the difference between
x-value estimations is sufficiently small.
Test files are provided, which are known to have a solution that converges for values of n 512, 1024, 2048 and 4096.
Another test file is provided that contains 4 different data sets ranging in size from 128 to 1024. (Jacobi.txt)
The parallel architecture uses the Root and Node processes provided in the package jcsp.gpp.divideAndConquer An Emit process reads in the matrix(ces) from a file and constructs an object that is sent to the Root node. The Root node then send copies of the base object to each of the Node processes. The Root process then send the initial guess such that each Node gets a sub-range of the complete matric to calculate. The Node process then returns its subrange of recalcuated x values back to Root, where they are reconmbined into a single matrix. This is repeated until the estimates between subsequent iterations are sufficiently small. The final result is then output to a Collect process where the answer is checked. A OneDirectedList spreader process is used to direct the correct subrange to each Node process. The Root process can output at each stage of the iteration so that a system that involves visualisation can output the intermediate stages.
The system terminates in the same manner as other processes in the library. The Root process has the ability to provide logging information should that be needed.
Author, Licence and Copyright statement author Jon Kerridge School of Computing Edinburgh Napier University Merchiston Campus, Colinton Road Edinburgh EH10 5DT Author contact: j.kerridge (at) napier.ac.uk Copyright Jon Kerridge Edinburgh Napier University * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Class | Description |
---|---|
JacobiDataMC | |
JacobiResultMC |
Script | Description |
---|---|
CreateJacobiDataFile | |
CreateJacobiDataFiles | |
JacobiSeq | |
RunJacobiMC | |
RunJacobiMC_gpp |