BookmarkSubscribeRSS Feed
scdent
Obsidian | Level 7

SAS忘備録
http://sas-boubi.blogspot.com/2018/08/keepdrop.html
の記事より、
data test;
   length col1-col200 $200.;
   array ar(*) col:;
   do i=1 to dim(ar);
       ar(i) = 'abcdefg';
   end;
   do i=1 to 50000;
      output;
   end;
run;
を実行してサンプルデータ:testを作成し、
data out1;
   set test;
run;
を実行すると、私のPCでは
処理時間           50.90 
に対して、SAS忘備録では
処理時間           1.95 
と、かなり処理時間が異なっています。
次にSAS OnDemand for Academicsで実行するとSAS忘備録と同じ処理時間になりました。
そこで質問なのですが、私のPCSAS OnDemand for Academicsでの処理時間はなぜ大き
く異なるのでしょうか。使用しているCPUの違いが原因でしたら、どう違うのでしょうか。

3 REPLIES 3
yu_sas
SAS Employee

状況から考えればディスクのI/Oパフォーマンスの違いだと思います。

 

このコードでは複雑な計算処理をしているわけではなく、CPU時間は小さいと思います。

一方でデータセットtestもout1も2GB程度のファイルになりますので、それを読み込んで

書き込むことになります。よってI/Oパフォーマンスが強く影響すると考えられます。

scdent
Obsidian | Level 7

yu_sasさん

 

ありがとうございます。

 

実は、SAS OnDemand...の方がWeb上で実行しているのでかなり遅いと思っていたのですが、これだけ処理時間が違うのなら大きいデータの処理はSAS OnDemand...に任せた方が効率が良いと考えています。

 

でも、データセットをアップロードしなくてはならない(?)ので時間的にはどうなのかと思います。

データセットをアップロードしないで、PC側にあるデータセットに直接Accessできるようにはならないものでしょうか。

 

yu_sas
SAS Employee

念のためですが、SAS OnDemand for Academicsは非営利目的の学習用です。

通常業務で使うデータの処理には利用できないことにご注意ください。

 

データセットはアップロードしないと使えません。