我在SAS 9.1.3(在服務器上),並且具有一個宏循環一個數組喂計算密集型的集合,其被附加出到建模步驟一張桌子。我想知道是否可以爲陣列的每個元素設置最大運行時間。這樣,任何運行時間超過3分鐘的元素都將被跳過,並且下一個項目被輸入。使在SAS的宏超時甲步驟設定的間隔後
例如,我使用proc nlin和by語句爲每個類構建單獨的模型數據集和一個類未能收斂;我怎麼跳過那個班?
位小衆的要求,希望有人能夠協助!
我在SAS 9.1.3(在服務器上),並且具有一個宏循環一個數組喂計算密集型的集合,其被附加出到建模步驟一張桌子。我想知道是否可以爲陣列的每個元素設置最大運行時間。這樣,任何運行時間超過3分鐘的元素都將被跳過,並且下一個項目被輸入。使在SAS的宏超時甲步驟設定的間隔後
例如,我使用proc nlin和by語句爲每個類構建單獨的模型數據集和一個類未能收斂;我怎麼跳過那個班?
位小衆的要求,希望有人能夠協助!
我能想到的這裏唯一的辦法是使之按組分別從靜止運行的每個,在一個或多個SAS/CONNECT會話重寫代碼,有家長會殺死對方一個集超時後,然後重新組合倖存的輸出。
以DOM和喬指出,這不是一個簡單的任務,但如果你足夠熱衷於學習SAS的這一方面有可能。一個好地方,開始爲這樣的事情會是這個頁面:
http://support.sas.com/rnd/scalability/tricks/connect.html
我能夠使用的例子有和其他地方作爲一個簡單的並行處理框架的基礎(在SAS 9.1.3 ,巧合!),但有很多細節需要考慮。爲了讓您的各種商店冒險的想法,如果你走這條路線:
call execute
來滾動我自己的...)人們可以在這個主題上寫一篇(冗長的)SUGI論文,我相信如果你環顧四周,那裏會有很多這樣的論文。
通常,SAS以線性方式運行。所以你不能編寫一個步驟來監視同一個程序中的另一個步驟。你可以做的是在SAS/CONNECT會話中運行你的代碼,並用啓動會話的進程監視它。這不是微不足道的,以及如何超出Stack Overflow的範圍。
對於數據的步驟,使用datetime()
函數來獲取當前系統日期和時間。這是以秒爲單位測量的。您可以檢查數據步驟中的時間。用stop;
聲明停止數據步驟。
現在您特意詢問了關於打破PROC內的特定步驟的問題。這必須由SAS開發人員在PROC中實施。如果可能的話,它將記錄在程序的文件中。在http://support.sas.com/documentation/處查看SAS文檔。
對於PROC NLIN,我不認爲這是一個「破X後」參數。您可以使用跟蹤參數來跟蹤模型執行以查看掛起的內容。然後,您可以嘗試改變收斂參數,以嘗試加速緩慢且收斂嚴重的模型。
這是一個很好的答案,儘管它可能超出了我的能力。感謝所有相同的幫助! – analystic 2014-10-30 23:14:47