Using Call randgen is much faster(seed the log below)
513 proc iml;
NOTE: IML Ready
514 seed=j(50000000,1,2);
515 x=uniform(seed);
516 y=1+2*x+normal(seed);
517 quit;
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 6.95 seconds
cpu time 6.88 seconds
518
519 proc iml;
NOTE: IML Ready
520 call randseed(2);
521 x=j(50000000,1);
522 e=x;
523 call randgen(x, 'uniform');
524 call randgen(e, 'normal');
525 y=1+2*x+e;
526 quit;
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 2.90 seconds
cpu time 2.88 seconds