<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">AJCM</journal-id><journal-title-group><journal-title>American Journal of Computational Mathematics</journal-title></journal-title-group><issn pub-type="epub">2161-1203</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/ajcm.2012.22009</article-id><article-id pub-id-type="publisher-id">AJCM-20039</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Parallel Computing with a Bayesian Item Response Model
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>yriakos</surname><given-names>Patsias</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Mona</surname><given-names>Rahimi</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yanyan</surname><given-names>Sheng</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Shahram</surname><given-names>Rahimi</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff2"><addr-line>Department of Computer Science, Southern Illinois University, Carbondale, USA</addr-line></aff><aff id="aff3"><addr-line>Department of Educational Psychology &amp;amp; Special Education, Southern Illinois University, Carbondale, USA</addr-line></aff><aff id="aff1"><addr-line>Motorola Mobility, Chicago, USA</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>rahimi@cs.siu.edu(MR)</email>;<email>ysheng@siu.edu(YS)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>21</day><month>06</month><year>2012</year></pub-date><volume>02</volume><issue>02</issue><fpage>65</fpage><lpage>71</lpage><history><date date-type="received"><day>February</day>	<month>4,</month>	<year>2012</year></date><date date-type="rev-recd"><day>February</day>	<month>17,</month>	<year>2012</year>	</date><date date-type="accepted"><day>February</day>	<month>25,</month>	<year>2012</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  Item response theory (IRT) is a modern test theory that has been used in various aspects of educational and psychological measurement. The fully Bayesian approach shows promise for estimating IRT models. Given that it is computation- ally expensive, the procedure is limited in practical applications. It is hence important to seek ways to reduce the execution time. A suitable solution is the use of high performance computing. This study focuses on the fully Bayesian algorithm for a conventional IRT model so that it can be implemented on a high performance parallel machine. Empirical results suggest that this parallel version of the algorithm achieves a considerable speedup and thus reduces the execution time considerably.
 
</p></abstract><kwd-group><kwd>Gibbs Sampling; High Performance Computing; Message Passing Interface; Two-Parameter IRT Model</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Item response theory (IRT) provides measurement models that describe a probabilistic relationship between correct responses on a set of test items and a latent trait. With many advantages (see [<xref ref-type="bibr" rid="scirp.20039-ref1">1</xref>]), it has been found useful in a wide variety of applications in education and psychology (e.g. [2-4]) as well as in other fields (e.g. [5-10]).</p><p>Parameter estimation offers the basis for theoretical advantages of IRT and has been a major concern in the application of IRT models. While the inference of items and persons on the responses is modeled by distinct sets of parameters, simultaneous estimation of these parameters in IRT models results in statistical complexities in the estimation task, which have made estimation procedure a primary focus of psychometric research over decades [11-14]. Recently, because of the availability of high-computing technology, the attention is focused on fully Bayesian estimation procedures, which offer a number of advantages over the traditional method (see e.g. [15,16]). Albert [<xref ref-type="bibr" rid="scirp.20039-ref17">17</xref>] applied Gibbs sampling [<xref ref-type="bibr" rid="scirp.20039-ref18">18</xref>], one of the most efficient Markov Chain Monde Carlo (MCMC [19,20]) algorithms, to the two-parameter normal ogive (2PNO) [<xref ref-type="bibr" rid="scirp.20039-ref21">21</xref>] model. Since a large number of iterations are needed for the Markov chain to reach convergence, the algorithm is computationally intensive and requires considerable amount of execution time, especially with large datasets (see [<xref ref-type="bibr" rid="scirp.20039-ref22">22</xref>]). Hence, achieving a speedup, and thus reducing the execution time, will make it more practical for researchers or practitioners to implement IRT models using Gibbs sampling.</p><p>High performance computing (HPC) employs supercomputers and computer clusters to tackle problems with complex computations. HPC utilizes the concept of parallel computing to run programs in parallel and achieve a smaller execution time or communication time, which is affected by the size of the messages being communicated between computers. With parallel computing, many largescale applications and algorithms utilize Message Passing Interface (MPI) standard to achieve better performance. The MPI standard is an application programming interface (API) that abstracts the details of the underlying architecture and network. Some examples of applications that use MPI are crash simulations codes, weather simulation, and computational fluid dynamic codes [<xref ref-type="bibr" rid="scirp.20039-ref23">23</xref>] to name a few.</p><p>In view of the above, parallel computing can potentially help reduce time for implementing MCMC with the 2PNO IRT model, and as the size of data and/or chain increases, the benefit of using parallel computing would increase. However, parallel computing is known to excel at tasks that rely on the processing of discrete units of data that are not interdependent. Given the high data dependencies in a single Markov chain for IRT models, such as the dependency of one state of the chain to the previous state, and the dependencies among the data within the same state, the implementation of parallel computing is not straightforward. The purpose of this study is hence to overcome the problem and develop a high performance Gibbs sampling algorithm for the 2PNO IRT model using parallel computing. This paper focuses on all-to-one and one-to all broadcast operations. The aim is to achieve a high speedup while keeping the cost down. The cost of solving a problem on a parallel system is defined as the product of parallel runtime and the number of processing elements used.</p><p>The remainder of the paper is organized as follows. Section 2 reviews the 2PNO IRT model and the Gibbs sampling procedure developed by Albert [<xref ref-type="bibr" rid="scirp.20039-ref17">17</xref>]. Section 3 illustrates the approach taken in this study to parallelize the serial algorithm. In Section 4, the performance of the developed parallel algorithm is investigated and further compared with that from serial implementation. Finally, a few summary remarks are given in Section 5.</p></sec><sec id="s2"><title>2. Model and the Gibbs Sampler</title><p>The 2PNO IRT model provides a fundamental framework in modeling the person-item interaction by assuming one ability dimension. Suppose a test consists of k multiple-choice items, each measuring a single unified ability,<img src="1-1100088\161f4586-db33-44cd-adaf-af994eec1c52.jpg" />. Let <img src="1-1100088\ddaf67cb-eebc-4c75-b246-9d6042aa6027.jpg" /> represent a matrix of n examinees’ responses to k dichotomous items, so that <img src="1-1100088\c589f708-2825-4dbe-97d3-2c30d12bcf87.jpg" /> is defined as</p><p><img src="1-1100088\1c4c88e0-554d-4f33-a8ed-23c126ff2cd3.jpg" /></p><p><img src="1-1100088\d845975d-a2f4-4c74-9902-d112d79899fe.jpg" />. The probability of person i obtaining correct response for item j can be defined as</p><disp-formula id="scirp.20039-formula709"><label>, (1)</label><graphic position="anchor" xlink:href="1-1100088\5e72b547-c251-42e5-a4f8-bcccf3a95d8f.jpg"  xlink:type="simple"/></disp-formula><p>where <img src="1-1100088\7915a3ff-85c6-4d09-846f-9676d77aafe9.jpg" /> and <img src="1-1100088\13f61e7c-356b-44d1-9a11-eb87fa0921e7.jpg" /> denote item parameters, <img src="1-1100088\e4515c5f-85f3-42fe-b6b5-b850ea97433d.jpg" />denotes the continuous person trait parameter, and <img src="1-1100088\bedf253d-5b5c-4523-8817-10c0048e08a0.jpg" /> denotes the unit normal cdf.</p><p>The Gibbs sampler involves updating three sets of parameters in each iteration, namely, an augmented continuous variable <img src="1-1100088\bb771b6a-1863-4dc2-970e-7791c42a6ffa.jpg" /> (which is positive if <img src="1-1100088\0bd3b901-e394-4f43-91f0-466408a2f05d.jpg" /><sub> </sub>and negative if<img src="1-1100088\ea9b6f53-d4da-43aa-be29-11d5d3682f49.jpg" />), the person parameter<img src="1-1100088\65914dd1-5b16-4116-b6be-0ada638cca2e.jpg" />, and the item parameters<img src="1-1100088\db1c89f0-530c-4806-9332-a288a98656ae.jpg" />, where <img src="1-1100088\4622f058-aadc-4806-87ed-d6b563d7ac00.jpg" /> from their respective full conditional distributions, namely,</p><disp-formula id="scirp.20039-formula710"><label>, (2)</label><graphic position="anchor" xlink:href="1-1100088\55c890cd-eafc-423b-9e80-03621c5a8d7c.jpg"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.20039-formula711"><label>, (3)</label><graphic position="anchor" xlink:href="1-1100088\c3260531-d4d8-42a8-bff1-f1358ccbfc7c.jpg"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.20039-formula712"><label>, (4)</label><graphic position="anchor" xlink:href="1-1100088\9650b3ca-f778-46dc-af5a-9506c7e5f456.jpg"  xlink:type="simple"/></disp-formula><p>where<img src="1-1100088\fab756b3-1673-45b4-be4e-bf68dfe0e351.jpg" />, assuming<img src="1-1100088\7dd50cd9-d331-4e38-825a-e7893d5f1ab3.jpg" />, <img src="1-1100088\2da0d93d-1130-4acc-aef5-73272aded059.jpg" />and <img src="1-1100088\8d002043-5fc8-4287-900f-b5b80203963a.jpg" /> (see [17,22]).</p><p>Hence, with starting values <img src="1-1100088\21a54874-6ec8-4775-8839-4d87e8b689a7.jpg" /> and<img src="1-1100088\71ad501b-edf2-44ec-9d38-2307c8dcb0b4.jpg" />, observations <img src="1-1100088\73fae66c-3182-44c2-a90a-4d49b5cd4db6.jpg" /> can be simulated from the Gibbs sampler by iteratively drawing from their respective full conditional distributions specified in Equations (2), (3) and (4). To go from <img src="1-1100088\ea84457f-b5b4-41bb-9518-0d8ce3d13f46.jpg" /><sub> </sub>to<img src="1-1100088\59097489-24df-45be-91a0-c4a6221334bf.jpg" />, it takes three transition steps:</p><p>1) Draw<img src="1-1100088\73ac53ac-e1f7-4284-b5a1-861acd889035.jpg" />;</p><p>2) Draw<img src="1-1100088\ecbede8f-f995-4f80-ab55-9db941f7734f.jpg" />;</p><p>3) Draw<img src="1-1100088\5bcac884-dc56-440d-9199-70aa4a2298f1.jpg" />.</p><p>This iterative procedure produces a sequence of<img src="1-1100088\af843e1c-4a8c-4c54-9f80-fd557a4e18e3.jpg" />, l = 0, &#183;&#183;&#183; , L. To reduce the effect of the starting values, early iterations in the Markov chain are set as burn-ins to be discarded. Samples from the remaining iterations are then used to summarize the posterior density of item parameters <img src="1-1100088\87910e46-9b88-4693-b69c-f17ae531320a.jpg" /> and ability parameters<img src="1-1100088\6113765c-cd20-4e09-9b03-642598351ac0.jpg" />. The algorithm takes less than 13 minutes for a 2000- by-10 dichotomous (0-1) data matrix and 10,000 total iterations when implemented in Fortran using the Microsoft Powerstation 4.0 compiler and the IMSL Fortran numerical library [<xref ref-type="bibr" rid="scirp.20039-ref22">22</xref>]. For a longer chain with 50,000 iterations, it takes about 60-90 minutes for each execution. With every execution taking more than 12 minutes on a single computer, using this algorithm with large datasets is computational expensive. This further limits the use of IRT models under fully Bayesian framework in various applications.</p></sec><sec id="s3"><title>3. Methodology</title><p>The study was performed using the Maxwell Linux cluster, a cluster with 106 processing nodes. Maxwell uses the message passing model via the MPICH MPI framework implementation. One of the 106 nodes acted as the root node, while the rest of the nodes acted as slave nodes. The root node was responsible for generating and partitioning the matrix y, transmitting the submatrices, updating and broadcasting θ, execution time recording, as well as the same duties as the slave nodes.</p><p>Each node on the cluster has an Intel Xeon dual CPU quad-core processor clocked at 2.3 GHz, 8 GB of RAM, 90 TB storage, and Linux 64bit operating system. MPICH allows the user to choose how many nodes to use before the execution of a program so that various number of processing nodes may be used in every execution.</p><sec id="s3_1"><title>3.1. Parallelism with the Gibbs Sampler</title><p>When decomposing a problem for parallel computation, the first decomposition method considered is the domain decomposition. In domain decomposition, the data associated with the problem are decomposed and a set of computations is assigned to them [<xref ref-type="bibr" rid="scirp.20039-ref24">24</xref>]. Domain decomposition is a great fit for the 2PNO IRT algorithm since the input and intermediate data can easily be partitioned as illustrated in Figures 1 and 2.</p><p>With this approach, the first processing node, P<sub>0</sub>, receives a sub matrix, <img src="1-1100088\7f511cf7-f46d-4e33-a609-c74d64c2d37e.jpg" />, of size n &#215; g that corresponds to the elements of the y matrix from y<sub>0,0</sub> to y<sub>n</sub><sub>–</sub><sub>1, g–1, </sub>where <img src="1-1100088\8ebc94ba-5e18-44e1-8f92-d87ce69c31f3.jpg" />&#160;and P is the number of processing nodes. The second processing node, P<sub>1</sub>, receives a sub matrix of y, <img src="1-1100088\7db44137-bd6d-4be7-8da1-6d4731a61220.jpg" />, of size n &#215; g that corresponds to the elements of the y matrix from y<sub>0, g</sub> to y<sub>n</sub><sub>–1, 2g–1</sub> and so forth. Consequently,</p><p>each processing node updates the Gibbs samples as in the serial algorithm, but with a smaller input data set. That is, instead of operating on the whole input matrix y, they operate on a part of it of size n &#215; g.</p><p>Decompositions of Z, α, and γ are depicted in <xref ref-type="fig" rid="fig2">Figure 2</xref>, where we see that each processor is updating a block of Z, α, and γ from Equations (2) and (4), respectively, where j = 1,&#183;&#183;&#183;, g. For instance, P<sub>0</sub> updates a block of Z, <img src="1-1100088\c5151c81-7dff-4229-9606-f8a8c932f83c.jpg" />, from Z<sub>0,0</sub> to Z<sub>n</sub><sub>–1, g–1</sub>, a block of α, <img src="1-1100088\a379a457-afe7-46c3-af72-05d5aa2fe06a.jpg" />, from α<sub>0</sub> to α<sub>g</sub><sub>–1</sub>, and a block of γ, <img src="1-1100088\ec81cefa-fdee-4e67-b485-a41f2232d854.jpg" />, from <img src="1-1100088\16c37646-3672-4741-a376-cca50f9ec8a2.jpg" /> to γ<sub>g</sub><sub>–1</sub>.</p><p>Since&#160;θ is of size n &#215; 1 (a column vector), it is not decomposed. However, a problem arises with the update of&#160;θ. For simplicity, consider the update of the first element of θ, which requires the updated α, γ, and the first row of Z. Yet, any given processing node has only a part of α, γ, and the first row of Z. The solution is to assign one of the processing nodes (e.g., the root) to update θ and broadcast it to the rest of the units. The na&#239;ve approach to update θ would be to have all the units send their part of α, γ and Z to the root so that it has the complete Z, α and γ to update θ from Equation (3) and then broadcast θ to the rest of the nodes. A problem with this approach is that the data communicated are too large, which causes the parallel algorithm to take a longer execution time than the serial algorithm.</p><p>A better approach is one that minimizes the communication cost. This can be achieved by having every node to calculate <img src="1-1100088\2e4c1386-95e8-4c82-aaf6-33cd3e637420.jpg" />and <img src="1-1100088\453dd211-6095-4b1b-82cf-e98ffb08982a.jpg" />&#160;and send ψ<sub>i</sub> and τ to the root for it to update q from</p><disp-formula id="scirp.20039-formula713"><label>, (5)</label><graphic position="anchor" xlink:href="1-1100088\e96e92fb-bec7-4d0d-a8c1-9c75ef0c9f73.jpg"  xlink:type="simple"/></disp-formula><p>This way, each processing node is sending a vector of size n + 1 to the root and one message of size n is broadcasted by the root. The total data transferred between all the nodes by this approach is</p><p><img src="1-1100088\e661da43-a701-4395-b8fc-1b16eb210e54.jpg" />.</p><p>As a comparison, the total data transferred between all the nodes by the na&#239;ve approach is</p><p><img src="1-1100088\689e12dd-4f72-44e3-af9a-d880c4cb75af.jpg" />which equals lP(2n + 2) when g = 1, lP(3n + 4) when g = 2, and so forth. When g &gt; 1, the total data transferred using the na&#239;ve approach are considerably more than that of the proposed approach (n is usually in the order of thousands).</p></sec><sec id="s3_2"><title>3.2. Implementation</title><p>The proposed algorithm was implemented in ANSI C and MPI with utilization of the GNU Scientific Library (GSL) [<xref ref-type="bibr" rid="scirp.20039-ref25">25</xref>]. To achieve the parallel computation as illustrated in the previous section, the MPI_Gather and MPI_Bcast routines were used for collective communications. See the Appendix for part of the source code of the parallel algorithm in updating the model parameters.</p></sec><sec id="s3_3"><title>3.3. Performance Analyses</title><p>In order to investigate the benefits of the proposed parallel solution against its serial counterpart, four experiments were carried out in which sample size (n), test length (k), and number of iterations (l) varied as below:</p><p>&#160; n =2000, k = 50, l = 10,000&#160; n =5000, k = 50, l = 10,000&#160; n =2000, k = 100, l = 10,000&#160; n =2000, k = 50, l = 20,000.</p><p>In all these experiments, one (representing the serial algorithm) to nine processing nodes were used to implement the Gibbs sampler. Their performances were evaluated using four metrics in addition to the execution time. These metrics are the total overhead, relative speedup, relative efficiency, and cost:</p><p>&#160; The total overhead can be calculated as</p><disp-formula id="scirp.20039-formula714"><label>, (6)</label><graphic position="anchor" xlink:href="1-1100088\413022f3-3c82-4820-abb3-98ea846f2666.jpg"  xlink:type="simple"/></disp-formula><p>where P is the number of available processing nodes, T<sub>S</sub> is the fastest sequential algorithm execution time and T<sub>P</sub> is the parallel algorithm execution time.</p><p>&#160; Relative speedup is the factor by which execution time is reduced on P processors and it is defined as</p><disp-formula id="scirp.20039-formula715"><label>. (7)</label><graphic position="anchor" xlink:href="1-1100088\51471273-6012-4a78-8808-55561c60e633.jpg"  xlink:type="simple"/></disp-formula><p>&#160; Efficiency describes how well the algorithm manages the computational resources. More specifically, it tells us how much time the processors spend executing important computations [<xref ref-type="bibr" rid="scirp.20039-ref24">24</xref>]. Relative efficiency is defined as</p><disp-formula id="scirp.20039-formula716"><label>. (8)</label><graphic position="anchor" xlink:href="1-1100088\babfe9b8-509a-4e47-a180-75fa082ac000.jpg"  xlink:type="simple"/></disp-formula><p>&#160; The definition of cost of solving a problem on a parallel system is the product of parallel runtime and P. Consequently, cost is a quantity that reveals the sum of individual processing node runtime.</p></sec></sec><sec id="s4"><title>4. Results and Discussion</title><p>Results from the four experiments are summarized in Figures 3-7. Note that the values plotted represent the average of ten runs. As expected, the execution time decreased as the number of processing nodes increased in all the experimented conditions (see <xref ref-type="fig" rid="fig3">Figure 3</xref>).</p><p>In terms of efficiency and cost, the algorithm performed better using two to five processing nodes (see Figures 4 and 5). When using up to seven nodes, the communication overhead (see <xref ref-type="fig" rid="fig6">Figure 6</xref>) is sufficiently low in order to not affect the overall speedup (see <xref ref-type="fig" rid="fig7">Figure 7</xref>). The algorithm had the smallest execution time when</p><p>five or seven processing nodes were used (see <xref ref-type="fig" rid="fig3">Figure 3</xref>). When nine processing nodes were used, the communication overhead reached the highest, which caused a relatively higher total execution time and lower speedup.</p><p>It is noted that the overhead increased as the number of processing nodes increased and it reached the maximum with eight or nine processing nodes. This is because in the parallel algorithm, the overhead of communication is a result of nodes sending ψ and τ to the root and then the root broadcasting θ to the rest of the nodes</p><p>in every iteration. Note that the total data transferred between all the nodes during execution is lP(2n + 1). The biggest part of idling occurs when the root waits to receive ψ and τ from all the slave nodes and when the slave nodes wait for the root node to calculate θ and broadcast it to them. The communication overhead increases more than the computation speedup when a certain amount of processors are used (ranges from four to seven processors in the experiments performed). As a result, the speedup does not increase with increasing processor count, and consequently, the cost increases dramatically.</p><p>Furthermore, a close examination of <xref ref-type="fig" rid="fig7">Figure 7</xref> indicates that the experiments with input matrix sizes 2000 &#215; 50, 5000 &#215; 50, and 2000 &#215; 50 (with number of iterations l = 20,000), follow identical paths. The common input value of these experiments is the number of items, k. The plot for the experiment with input matrix size 2000 &#215; 100 shows that the algorithm maintains a higher speedup compared to the other experiments. Even though the experiment with input matrix size 2000 &#215; 50 has smaller input size, the experiment with input matrix 2000 &#215; 100 maintains a higher speedup over all the processors. The same pattern is observed from <xref ref-type="fig" rid="fig4">Figure 4</xref>. In particular, the plot for the experiment with input matrix size 2000 &#215; 100 shows that the algorithm maintains a higher efficiency compared to the other experiments where k = 50. These are because the size of the messages communicated in every iteration from the slave nodes to the root, and from the root to the slave nodes, depends only on n. As k increases, the message size and communication overhead remain unaffected. Because of this, the processors spend more time performing computations and hence the efficiency and speedup increase.</p></sec><sec id="s5"><title>5. Conclusions</title><p>This study developed a high performance Gibbs sampling algorithm for the 2PNO IRT model with the purpose of achieving a lower execution time possible using the available hardware (Maxwell cluster). The algorithm was implemented using the ANSI C programming language and the message passing interface. Experiments were performed to evaluate its performance with various dataset sizes or iteration lengths. Results indicated that the parallel algorithm (for the given problem size) performed better, in terms of efficiency and cost, using two to five processing nodes. On the other hand, the algorithm had the smallest execution time when nine processing nodes were used.</p><p>The design of a parallel 2PNO IRT model has proved to be justifiable. Given the high data dependencies for such problems, the solution initially appeared to be non-trivial. By using domain decomposition, we managed to avoid communication for the state dependencies. Nevertheless, communication in every iteration of the Markov chain cannot be avoided because of the data dependencies within the state. By modifying the serial algorithm, the size of the data communicated in every iteration was managed to be reduced to make a speedup possible.</p><p>This study achieved parallelization through a columnwise decomposition and the use of all-to-one and oneto-all broadcast schemes. Further studies can be undertaken to increase the speedup and the efficiency, and minimize the cost and the total overhead. For example, the data may be decomposed differently or an all-to-all broadcast scheme may be adopted in order to achieve smaller communication overhead.</p></sec><sec id="s6"><title>REFERENCES</title></sec><sec id="s7"><title>Appendix</title><p>The pseudo code for updating the values of Z, ψ, τ, θ, α, and γ is shown below. First of all, Z is updated through the function update_Z. Then, update_PSI_TAU is called to update ψ and τ and MPI_Gather is called to send ψ and τ to the root. The root receives ψ and τ and calls update_TH to update θ and afterwards broadcasts θ by calling MPI_Bcast. Finally, α and γ are updated from a function call to update_A_G. In order to reduce communication overhead, ψ and τ are sent in the same message. To achieve that, an array of size n +1 is set up, where the first n entries consist of the elements of ψ and entry n +1 consists of τ (the name of this array in the code is PSI_TAU_array).</p><p>// Start iteration:</p><p>for (m = 0; m &lt; l; m++){</p><p>count++;</p><p>update_Z(Z, y, TH, A, G, r);</p><p>update_PSI_TAU(PSI_TAU_array, Z, A, G);</p><p>MPI_Gather (PSI_TAU_array, n+1MPI_DOUBLE, PSI_TAU_rec, n+1, MPI_DOUBLEROOT, MPI_COMM_WORLD);</p><p>if (rank == ROOT){ double TAU_array[size]; int ind = 0;</p><p>// Retrieve PSI and TAU from PSI_TAU_rec:</p><p>for (j = 0; j &lt; size; j++){</p><p>for (i = 0; i &lt; n+1; i++){</p><p>if (i &lt; n)</p><p>gsl_matrix_set(PSI_matrix, i, jPSI_TAU_rec[ind++]);</p><p>else TAU_array[j] = PSI_TAU_rec[ind++];</p><p>}</p><p>}</p><p>update_TH (TH, THV, TAU_array, PSI_matrix, count, r);</p><p>// Transfer TH data into a buffer so that it can be broadcasted:</p><p>for (i = 0; i &lt; n; i++){</p><p>TH_array[i] = gsl_vector_get(TH, i);</p><p>}</p><p>}</p><p>MPI_Bcast (TH_array, n, MPI_DOUBLE, ROOT, MPI_COMM_WORLD);</p><p>// Transfer TH received to a vector structure:</p><p>for (i = 0; i &lt; n; i++){</p><p>gsl_vector_set (TH, i, TH_array[i]);</p><p>}</p><p>update_A_G(A, G, AV, GV, Z, TH, unif, count, r, p);</p><p>} // end iteration</p></sec><sec id="s8"><title>NOTES</title></sec></body><back><ref-list><title>References</title><ref id="scirp.20039-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">R. Hambleton, H. Swaminathan and H. J. Rogers, “Fundamentals of Item Response Theory,” SAGE Publications, Thou-sand Oaks, 1991.</mixed-citation></ref><ref id="scirp.20039-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">M. J. Kolen and R. L. Brennan, “Test Equating: Methods and Practices,” Springer-Verlag, New York, 1995.</mixed-citation></ref><ref id="scirp.20039-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">S. E. Embretson and S. P. Reise, “Item Response Theory for Psychologist,” Lawrence Erlbaum Associates Inc., Mahwah, 2000. </mixed-citation></ref><ref id="scirp.20039-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">H. Wainer, N. Dorans, D. Eignor, R. Flaugher, B. Green, R. Mislevy, L. Steinberg and D. Thissen, “Computerized Adaptive Testing: A Primer,” Lawrence Erlbaum Associates Inc., Mahwah, 2000.</mixed-citation></ref><ref id="scirp.20039-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">J. Bafumi, A. Gelman, D. K. Park and N. Kaplan, “Practical Issues in Implementing and Understanding Bayesian Ideal Point Estimation,” Political Analysis Advance Access, Vol. 13, No. 2, 2005, pp. 171-187.  
doi:10.1093/pan/mpi010</mixed-citation></ref><ref id="scirp.20039-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">N. Bezruckzo, “Rasch Measurement in Health Sciences,” JAM Press, Maple Grove, 2005. </mixed-citation></ref><ref id="scirp.20039-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">C. H. Chang and B. B. Reeve, “Item Response Theory and Its Applications to Patient-Reported Outcomes Measurement,” Evaluation &amp; the Health Professions, Vol. 28, No. 3, 2005, pp. 264-282.  
doi:10.1177/0163278705278275</mixed-citation></ref><ref id="scirp.20039-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">U. Feske, L. Kirisci, R. E. Tarter and P. A. Plkonis, “An Application of Item Response Theory to the DSM-III-R Criteria for Borderline Personality Disorder,” Journal of Personality Disorders, Vol. 21, No. 4, 2007, pp. 418-433.  
doi:10.1521/pedi.2007.21.4.418</mixed-citation></ref><ref id="scirp.20039-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">G. W. Imbens, “The Role of the Propensity Score in Estimating Dose-Response Functions,” Biometrika, Vol. 87, No. 3, 2000, pp. 706-710. doi:10.1093/biomet/87.3.706</mixed-citation></ref><ref id="scirp.20039-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">S. Sinharay and H. S. Stern, “On the Sensitivity of Bayes Factors to the Prior Distribution.” The American Statistician, Vol. 56, No. 3, 2002, pp. 196-201.  
doi:10.1198/000313002137</mixed-citation></ref><ref id="scirp.20039-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Birnbaum, “Statistical Theory for Logistic Mental Test Models with a Prior Distribution of Ability,” Journal of Mathematical Psychology, Vol. 6, No. 2, 1969, pp. 258- 276. doi:10.1016/0022-2496(69)90005-4</mixed-citation></ref><ref id="scirp.20039-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">F. B. Baker and S. H. Kim, “Item Response Theory: Pa- rameter Estimation Techniques,” 2nd Edition, Dekker, New York, 2004. </mixed-citation></ref><ref id="scirp.20039-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">R. D. Bock and M. Aitkin, “Marginal Maximum Likelihood Estimation of Item Parameters: Application of an EM Algorithm,” Psychometrika, Vol. 46, No. 4, 1981, pp. 443-459. doi:10.1007/BF02293801</mixed-citation></ref><ref id="scirp.20039-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">W. Molenaar, “Estimation of Item Parameters,” In: G. H. Fischer and I. W. Molenaar, Eds., Rasch Models: Foundations, Recent Developments, and Applications, Springer-Verlag, New York, 1995, pp. 39-51.</mixed-citation></ref><ref id="scirp.20039-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">R. K. Tsutakawa and J. C. Johnson, “The Effect of Un- certainty of Item Parameter Estimation on Ability Estimates,” Psychometrika, Vol. 55, No. 2, 1990, pp. 371-390.  
doi:10.1007/BF02295293</mixed-citation></ref><ref id="scirp.20039-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">R. K. Tsutakawa and M. J. Soltys, “Approximation for Bayesian Ability Estimation,” Journal of Educational Statistics, Vol. 13, No. 2, 1988, pp. 117-130.  
doi:10.2307/1164749</mixed-citation></ref><ref id="scirp.20039-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">J. H. Albert, “Bayesian Estimation of Normal Ogive Item Response Curves Using Gibbs Sampling,” Journal of Educational Statistics, Vol. 17, No. 3, 1992, pp. 251-269.  
doi:10.2307/1165149</mixed-citation></ref><ref id="scirp.20039-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">S. Geman and D. Geman, “Stochastic Relaxation, Gibbs Distributions, and the Bayesian Restoration of Images,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 6, No. 6, 1984, pp. 721-741.  
doi:10.1109/TPAMI.1984.4767596</mixed-citation></ref><ref id="scirp.20039-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">F. M. Smith and G. O. Roberts, “Bayesian Computation via the Gibbs Sampler and Related Markov Chain Monte Carlo Methods,” Journal of the Royal Statistical Society, Series B, Vol. 55, No. 1, 1993, pp. 3-24.</mixed-citation></ref><ref id="scirp.20039-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">L. Tierney, “Markov Chains for Exploring Posterior Distributions (with discussion),” Annals of Statistics, Vol. 22, No. 4, 1994, 1701-1762. doi:10.1214/aos/1176325750 </mixed-citation></ref><ref id="scirp.20039-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">F. M. Lord and M. R. Novick, “Statistical Theories of Mental Test Scores,” Addison-Wesley, Boston, 1968.</mixed-citation></ref><ref id="scirp.20039-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Y. Sheng and T. C. Headrick, "An Algorithm for Implementing Gibbs Sampling for 2PNO IRT Models," Journal of Modern Applied Statistical Methods, Vol. 6, No. 1, 2007, pp. 341-349.</mixed-citation></ref><ref id="scirp.20039-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">R. Noronha and K. P. Dhabaleswar, “Performance Evaluation of MM5 on Clusters with Modern Interconnects: Scalability and Impact,” Euro-Par 2005 Parallel Processing, 2005, Vol. 3648, pp. 134-145.  
doi:10.1007/11549468_18</mixed-citation></ref><ref id="scirp.20039-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Foster, “Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering,” Addison-Wesley, Boston, 1995. </mixed-citation></ref><ref id="scirp.20039-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman M. Booth, et al., “GNU Scientific Library Reference Manual,” 2009. http://www.gnu.org/software/gsl</mixed-citation></ref></ref-list></back></article>