2013/11/20

C# Parallel 平行化處理

平行處理就是將資料集切割成較小的區塊,讓多個執行緒同時處理不一樣區塊




using System;
using System.Threading.Tasks;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {

            for (int i = 0; i < 10000; i++)
            {
                for (int j = 1; j < i; j++)
                {
                    Console.Write(j + i);
                }
                Console.WriteLine();
            }

            Console.WriteLine("正常執行緒結束");
            Console.ReadKey();

            Parallel.For(0, 10000, ctr =>
            {
                for (int i = 0; i < ctr; i++)
                {
                    for (int j = 1; j < i; j++)
                    {
                        Console.Write(j + i);
                    }
                    Console.WriteLine();
                }
            });
            Console.WriteLine("平行化處理結束");
            Console.ReadKey();
        }
    }
}


以正常方式去計算:





以平行化處理去計算



參考資料:
http://msdn.microsoft.com/zh-tw/library/dd460717(v=vs.110).aspx
http://msdn.microsoft.com/zh-tw/library/dd537608(v=vs.110).aspx
http://msdn.microsoft.com/zh-tw/library/dd997393(v=vs.110).aspx
http://msdn.microsoft.com/zh-tw/library/dd460693(v=vs.110).aspx
http://msdn.microsoft.com/zh-tw/library/dd460688(v=vs.110).aspx
http://msdn.microsoft.com/zh-tw/library/system.threading.tasks.parallel(v=vs.110).aspx
http://msdn.microsoft.com/zh-tw/library/system.threading.tasks.parallel.for(v=vs.110).aspx
簡易的程式平行化方法-openmp(一)簡介