
рдЗрдВрдЯреЗрд▓ рдереНрд░реЗрдбрд┐рдВрдЧ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдирд╛рддреА рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХрдИ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдХрд┐рд╕ рдордВрдЪ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд╣ рдзрд╛рдЧреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрддреА рд╣реИред
рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЗрдВрдЯреЗрд▓ рдЯреАрдмреАрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдУрдкрдирдПрдордкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛, рдЬреЛ рдПрдордбреА 5 рдореЗрдВ рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдмрд▓ рджреЗрддрд╛ рд╣реИред рд╣рдо рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЯреАрдмреАрдмреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВ рддреБрд░рдВрдд рдЖрд░рдХреНрд╖рдг рдХрд░рд╡рд╛рдКрдВрдЧрд╛, рдпрд╣ MD5 рдореЗрдВ рдЗрд╕рдХреЗ рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕рд╡рд░реНрдб рдЪрдпрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬрд╛рдирд╡рд░ рдмрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп, рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 3.0 рд╕рдВрд╕реНрдХрд░рдг рдерд╛ред рдбрд┐рд╕реНрдХ рдкрд░ рдХрд┐рд╕реА рднреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ D: \ Libs \ (рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓рд╛ рдерд╛ рд╡рд╣ D: \ Libs \ tbb30_20100406oss \ ) рдерд╛ред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдордПрд╕ рд╡реАрдПрд╕ 2008 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде, рд▓реЗрдЦ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдПрдордПрд╕ рд╡реАрдПрд╕ рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдЪ рд╣реИред
рдПрдХ рдирдпрд╛ рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ рдореЗрдВ, рдЖрдкрдХреЛ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдпреБрдХреНрдд рдлреЛрд▓реНрдбрд░, рдФрд░ рд▓рд┐рдВрдХрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╡рд╛рд▓реЗ рд▓рд┐рдм рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдг рдЦреЛрд▓реЗрдВ, C / C ++ -> рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм рдкрд░, рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рд╛рдорд┐рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рд▓рд╛рдЗрди рдореЗрдВ, рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ , рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ D: \ Libs \ tbb30_2010040680 \ _ рдХрд╛ рдкрде рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж, Linker -> General рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд┐рд░реЗрдХреНрдЯреНрд░реАрдЬрд╝ рдлрд╝реАрд▓реНрдб ( D: \ Libs \ tbb30_20100406oss \ lib \ ia32 \ vc9 ) рдореЗрдВ Lib рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдЬреЛрдбрд╝реЗрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ MS VS рдХреЗ рдЯрд╛рд░рдЧреЗрдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рд╡рд░реНрдЬрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд▓рд┐рдмрд░ рдлреЛрд▓реНрдбрд░ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10 рд╡реЗрдВ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдпрд╣ 64-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо lib \ Intel64 \ vc9 рдХреЗ рд▓рд┐рдП lib \ ia32 \ vc10 рд╣реЛрдЧрд╛ ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
#include "tbb/task_scheduler_init.h"
#include "tbb/parallel_for.h"
#include "tbb/blocked_range.h"
using namespace tbb;
* This source code was highlighted with Source Code Highlighter .
рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдореЗрдВ, рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, task_scheduler_init рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдХрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
int _tmain( int argc, _TCHAR* argv[])
{
task_scheduler_init init;
return 0;
}
* This source code was highlighted with Source Code Highlighter .
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдРрд╕реА рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рд╡рд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдордбреА 5 рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдЧрд╛ред
class MD5Calculate
{
public :
//////////////////////////////////////////////////////////////////////////
// , TBB
// ,
// ""
//////////////////////////////////////////////////////////////////////////
void operator () ( const blocked_range< int >& range) const
{
string md5;
stringstream stream;
for ( int i = range.begin(); i != range.end(); i++)
{
stream.clear();
stream << i;
GetMD5Hash(stream.str(), md5);
if (md5 == g_strCompareWith)
{
cout << "Password is: " << stream.str() << endl;
exit(0);
}
}
}
};
* This source code was highlighted with Source Code Highlighter .
рдЗрд╕ рдХреЛрдб рдХреЛ parallel_for рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛
int _tmain( int argc, _TCHAR* argv[])
{
task_scheduler_init init;
//////////////////////////////////////////////////////////////////////////
// ,
// 8000000 8999999
//////////////////////////////////////////////////////////////////////////
parallel_for(blocked_range< int >(8000000, 8999999), MD5Calculate());
return 0;
}
* This source code was highlighted with Source Code Highlighter .
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдФрд░ рдЬреЛ рд╕рдмрд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рдЯреАрдмреАрдмреА рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рддрд╣рдд рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдФрд░ рдкреНрд▓рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреБрдж рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдереНрд░реЗрдбреНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИред рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреАред
рд▓рд╛рдпрдмреНрд░реЗрд░реА рд╕рдорд╛рдВрддрд░ рдФрд░ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рдВрддрд░_рдлреЛрд░ рд▓реВрдк рдХреЛ рд╕рдорд╛рдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ рд╕рдорд╛рдВрддрд░_реНрд░реЗрдбреНрдпреВрд╕ , рд╕рдорд╛рдирд╛рдВрддрд░_рдПрд╕рдХреЗрди , рд╕рдорд╛рдВрддрд░_рдбреЛ , рдХрдВрдЯреЗрдирд░, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕, рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕, рд╕реЛрд▓рд╛рд░рд┐рд╕ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рднреАред