Programming the statistical procedures from SAS

PROC MI

Accepted Solution Solved
Reply
Contributor
Posts: 26
Accepted Solution

PROC MI

Just wondering if PROC MI was due to be upgraded/enhanced to be multi-threaded.

 

Thanks.


Accepted Solutions
Solution
‎07-05-2016 02:31 PM
SAS Super FREQ
Posts: 3,547

Re: PROC MI

In general, SAS/STAT R&D appears to be multithreading computations when it makes sense to do so. Portions of  PROC MI might be multithreaded without you being aware. For example, the computation of means for each variable, the computations of correlations during the EM phase, and the forming of the matrix of cross products during regression are all steps that are multithreaded in other procedures. It would not be surprising if PROC MI calls the same underlying routines. Linear algebra computations are another place where PROC MI might be calling a multithreaed algorithm without fanfare.

 

On the other hand, there are probably portions of PROC MI that cannot be multithreaded. I don't know much about the details of multiple imputation, but some algorithms like MCMC are inherently serial processes because the computation of the (i+1)th element of the chain depends on the result of the i_th computation. Although different threads can compute different chains that start from different initial conditions, the computation of an individual chain is most efficiently accomplished by using a single thread.

View solution in original post


All Replies
Solution
‎07-05-2016 02:31 PM
SAS Super FREQ
Posts: 3,547

Re: PROC MI

In general, SAS/STAT R&D appears to be multithreading computations when it makes sense to do so. Portions of  PROC MI might be multithreaded without you being aware. For example, the computation of means for each variable, the computations of correlations during the EM phase, and the forming of the matrix of cross products during regression are all steps that are multithreaded in other procedures. It would not be surprising if PROC MI calls the same underlying routines. Linear algebra computations are another place where PROC MI might be calling a multithreaed algorithm without fanfare.

 

On the other hand, there are probably portions of PROC MI that cannot be multithreaded. I don't know much about the details of multiple imputation, but some algorithms like MCMC are inherently serial processes because the computation of the (i+1)th element of the chain depends on the result of the i_th computation. Although different threads can compute different chains that start from different initial conditions, the computation of an individual chain is most efficiently accomplished by using a single thread.

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 208 views
  • 0 likes
  • 2 in conversation