open-mgl-dev (開発バージョン) (0.7.9.80) | 2009-11-02 22:25 |
open-mgl (DirectX9, VC++2008) (0.7.9) | 2009-09-27 20:32 |
roast-dev (開発バージョン) (0.0.1.40-dev) | 2009-11-02 23:09 |
>FrontPage>Roast+>リファレンス>std>parallelable.hpp
並列実行をサポートします。
namespace roast {
}
テンプレート引数 enable_prallel に false を指定した場合での、parallelableを使用した場合と使用しない場合では、VC++2008 コンパイルの Core2 動作で1.3倍程度のパフォーマンス低下が見られる。
例)
- #include "stdafx.h"
- #include "roast/includes.hpp"
- #include <time.h>
- #define USE_PARALLELABLE
- class CHoge
- {
- private:
- int m_r;
- int para(int i)
- {
- int n = clock()+i;
- m_r += n;
- return n;
- }
- public:
- CHoge(){ m_r = 0; }
- int start()
- {
- for(int i=0; i<0x02ffffff; i++)
- {
- #ifdef USE_PARALLELABLE
- roast::parallelable1<CHoge,int,int> paraobj(this, &CHoge::para);
- paraobj.call(i);
- #else
- para(i);
- #endif
- }
- return m_r;
- }
- };
- void main()
- {
- CHoge hoge;
- int r = hoge.start();
- printf("%d (%d)\n", r, clock());
- /*
- Enable USE_PARALLELABLE: 2000 ms (Core2 Quad Q6600)
- Disable USE_PARALLELABLE: 1500 ms (Core2 Quad Q6600)
- */
- }