OpenMP

OpenMP (Open Multi-Processing)

OpenMP là một API hỗ trợ lập trình song song (ngoài ra bạn có thể tìm hiểu về CUDA của NVIDIA). OpenMP bao gồm nhiều chỉ thị chạy khác nhau. API này đã có sẵn trong Visual Studio C/C++. Vì thế khi sử dụng bạn chỉ cần import dòng này vào:

#include <omp.h>

là xong!

Bạn thử chạy dòng code này:

  
#include <stdio.h>
#include <omp.h>
#include <conio.h> # Để có thể sử dụng lệnh _getch() (dừng màn hình)

int main()
{
    #pragma omp parallel
    {
        printf("Hello world!\n");
    }

    _getch();
    return 0;
}

Sau khi chạy xong đoạn chương trình trên bạn có lẽ CHỈ THẤY 1 dòng Hello world! được xuất ra! Có lẽ bạn sẽ nói: “Như vậy mà gọi là SONG SONG ah?!? Có khác gì dòng code bình thường đâu?!?”.
Vấn đề là ở đây! Nếu bạn đã thiết lập chạy song song thì sẽ in ra 4 dòng Hello world! (Còn tùy vào máy của bạn có mấy nhân! Bạn có thể biết được số nhân của máy qua dòng lệnh sau:

printf("Số nhân: %d\n", omp_get_max_threads());

)
Tuy bạn có thể có 4 nhân nhưng lại không in ra được màn hình 4 dòng Hello world! là do bạn chưa enable cho nó!

Để Enable OpenMP bạn làm như sau:
* Phải chuột lên project của bạn, chọn properties.
* C/C++ -> Language, và thay đổi “OpenMP Support” thành ‘Yes’.
* Click OK!

Xong! Bạn có thể Ctrl+F5 lại xem!!! Nếu vẫn chỉ có 1 dòng được in ra thì máy của bạn chỉ hỗ trợ có 1 nhân thôi!

Bạn có thể tham khảo thêm tại đây

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s