Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
0,9 MB
Nội dung
1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
NHỮ THANH THẾ
NGHIÊN CỨUTÍNHTOÁNSONGSONGVÀ
ỨNG DỤNGVÀOHỆTHỐNGTÍNHCƯỚCDATA3G
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2013
2
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS. TRỊNH ANH TUẤN
Phản biện 1: ………………………………………………………………
Phản biện 2: …………………………………………………… ………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
3
MỞ ĐẦU
1. Lý do chọn đề tài
Nhu cầu tínhtoán trong lĩnh vực khoa học, công nghệ ngày càng cao và trở
thành một thách thức lớn, từ đó các giải pháp nhằm tăng tốc độ tínhtoán đã được
ra đời, từ năm 2001 đến năm 2003 tốc độ của Pentium 4 đă tăng gấp đôi từ
1.5GHz lên đến 3GHz, tuy nhiên hiệu năng của CPU (Central Processing Unit)
không tăng tương xứng như mức gia tăng xung của CPU, và việc gia tăng tốc độ
xung của CPU nhanh chóng chạm phải ngưỡng tối đa mà cụ thể trong khoảng thời
gian 2 năm từ năm 2003 đến năm 2005 tốc độ của CPU chỉ tăng từ 3GHz lên
3.8GHz. Trong quá trình tăng tốc độ xung của CPU các nhà sản xuất đã chạm phải
vấn đề về nhiệt độ của CPU sẽ quá cao và các giải pháp tản nhiệt khí đã đến mức
tới hạn không thể đáp ứng được khả năng làm mát khi CPU hoạt động ở xung quá
cao như vậy. Vì vậy việc gia tăng xung hoạt động của CPU không sớm thì muộn
cũng sẽ đi vào bế tắc.
Trước tình hình này, các nhà nghiêncứu vi xử lý đã chuyển hướng sang
phát triển công nghệ đa lõi, nhiều lõi, với cơ chế xử lý songsong trong các máy
tính nhằm tăng hiệu năng và tiết kiệm năng lượng.
Với dữ liệu lớn mà Hệthốngtínhcướcdata3g mạng Vinaphone đang đảm
nhiệm, cần tăng tốc xử lý vàtính toán. Để đảm bảo thời gian cung cấp thông tin
cho khách hàng.
Xuất phát từ nhu cầu trên tôi chọn đề tài:
“NGHIÊN CỨUTÍNHTOÁNSONGSONGVÀỨNGDỤNGVÀOHỆ
THỐNG TÍNHCƯỚCDATA 3G”
4
2. Luận văn được tổ chức thành ba chương
Chương 1. Nghiêncứu tổng quan về tínhtoánsongsong
- Giới thiệu chung tínhtoánsongsong
- Phân loại máy tínhtoánsongsong
- Các mô hình lập trình tínhtoánsongsong
Chương 2. Nghiêncứu thư viện lập trình songsong Pthread
- Giới thiệu PThread
- Cài đặt PTHREAD với Visual studio 2008 64bit
- Giới thiệu các hàm chính của pthread
- Đồng bộ hóa các tác vụ trong Pthread
- Một số ví dụ mẫu về Pthread
Chương 3: Ứngdụngtínhtoánsongsongvào bài toántínhcướcdata3g cho
Vinaphone.
- Khảo sát hiện trạng hệthống
- Đề xuất giải pháp tínhcướcdata3g trên hệ đa lõi
- Phân tích, thiết kế hệthốngtínhcước
- Cài đặt và thử nghiệm
- So sánh, đánh giá kết quả giữa chương trình trước và sau khi áp dụngtính
toán songsong
5
Chương 1 - NGHIÊNCỨU TỔNG QUAN VỀ TÍNHTOÁN
SONG SONG
1.1. Tổng quan về tínhtoánsongsong
Khoa học kỹ thuật ngày càng phát triển, đặt ra nhiều bài toán với khối
lượng tínhtoán rất lớn. Trong số đó có những bài toán mà kết quả chỉ có ý nghĩa
nếu được hoàn thành trong khoảng thời gian cho phép.
Để giải quyết những bài toán này, người ta đã nghiêncứu tăng tốc độ tính
toán bằng hai phương pháp hay kết hợp cả hai:
- Phương pháp 1: Cải tiến công nghệ, tăng tốc độ xử lý của máy tính.
Công việc này đòi hỏi nhiều thời gian, công sức và tiền của, nhưng tốc
độ cũng chỉ đạt được đến một giới hạn nào đó.
- Phương pháp 2: Chia bài toán ra thành những công việc nhỏ để có thể
chạy songsong trên nhiều bộ xử lý.
Việc phát triển công nghệ tínhtoán theo phương pháp 2 đã cho ra đời công
nghệ tínhtoánsong song, đó là việc sử dụng đồng thời nhiều tài nguyên tínhtoán
để giải quyết một bài toán. Các tài nguyên tínhtoán có thể bao gồm một máy tính
với nhiều bộ vi xử lý, một tập các máy tính kết nối mạng hay là một sự kết hợp
của hai dạng trên
1.1.1. Các mô hình tínhtoánsongsong
Một hệthống máy tínhsongsong là một máy tính với nhiều hơn một bộ xử
lý cho phép xử lý song song. Dựa vào sự phân biệt ở kết nối giữa các bộ xử lý
(hay thành phần xử lý), giữa bộ xử lý và bộ nhớ mà có rất nhiều loại kiến trúc máy
tính songsong khác nhau. Nhưng theo nguyên tắc phân loại của Flynn thì có hai
kiến trúc máy tínhsongsongsongthôngdụng sau:
ƒ SIMD - Single Instruction Multiple Data: đơn lệnh đa dữ liệu
ƒ MIMD - Multiple Instruction Multiple Data: đa lệnh đa dữ liệu
6
1.1.1.1. Mô hình đơn lệnh đa dữ liệu – SIMD
SIMD là một kiểu máy tínhsongsong có tất cả các bộ xử lý chỉ thực hiện
một lệnh duy nhất. Tuy nhiên lệnh này được thực hiện trên các bộ dữ liệu khác
nhau ứng với từng bộ xử lý khác nhau.
Mô hình này có ưu điểm là đơn giản trong phần cứng cũng như phần mềm
nhưng chỉ phù hợp để giải quyết các vấn đề tương đối đặc thù có tính cân đối cao
trong xử lý như xử lý ảnh … Các giải thuật cho các đa máy tính thường chạy
không hiệu quả trên các máy SIMD.
1.1.1.2. Mô hình đa lệnh đa dữ liệu – SIMD
MIMD là một mô hình kiến trúc máy tínhsongsongthôngdụng hiện nay.
Với mô hình này thì tất cả các bộ xử lý sẽ thực hiện các lệnh khác nhau với các dữ
liệu riêng khác nhau. Sự thực thi các lệnh có thể theo cơ chế đồng bộ hoặc không
đồng, xác định hay không xác định. Điều này giúp cho mô hình MIMD rất linh
hoạt trong việc xử lý song song.
1.2. Mô hình lập trình songsong
Công việc lập trình songsong bao gồm việc thiết kế, lập trình các chương
trình máy tínhsongsong sao cho nó chạy được trên các hệthống máy tínhsong
song. Hay có nghĩa là songsong hoá các chương trình tuần tự nhằm giải quyết một
vấn đề lớn hoặc làm giảm thời gian thực thi hoặc cả hai.
Lập trình songsong tập trung vào việc phân chia bài toán tổng thể ra thành
các công việc con nhỏ hơn rồi định vị các công việc đó đến từng bộ xử lý và đồng
bộ các công việc để nhận được kết quả cuối cùng. Nguyên tắc quan trọng nhất ở
đây chính là tính đồng thời hoặc xử lý nhiều tác vụ cùng một lúc. Có hai hướng
chính trong việc tiếp cận lập trình song song:
- Songsong hoá ngầm định: bộ biên dịch hay một vài chương trình khác
tự động phân chia các công việc đến các bộ xử lý.
7
- Songsong hoá tường minh: người lập trình phải tự phân chia chương
trình của họ đế nó có thể thực thi song song.
Hiện nay có rất nhiều mô hình lập trình song song: Đa luồng, Truyền thông
điệp, Songsong dữ liệu, Lai
1.2.1. Mô hình đa luồng
Nhiều hệthống cung cấp sự hỗ trợ cả hai luồng nhân và luồng người dùng
nên tạo ra nhiều mô hình đa luồng khác nhau. Chúng ta sẽ xem xét ba loại cài đặt
luồng thông thường.
1.2.1.1. Mô hình 1:1 (thread cấp nhân)
Mô hình một-một ánh xạ mỗi luồng người dùng tới một luồng nhân. Nó
cung cấp khả năng đồng hành tốt hơn mô hình nhiều-một bằng cách cho một luồng
khác chạy khi một luồng thực hiện lời gọi hệthống nghẽn; nó cũng cho phép
nhiều luồng chạy songsong trên các bộ xử lý khác nhau.
1.2.1.2. Mô hình N:1 (thread cấp người dùng)
Một mô hình N:1: tất cả các thread cấp ứngdụng đều vạch ra một đơn thực
thể được lập lịch cấp nhân. Nhân không có tri thức về thread ứng dụng. Với
phương pháp này, ngữ cảnh chuyển có thể được hoàn thành rất nhanh và ngoài ra,
nó có thể được thực hiện ngay cả trên những nhân đơn giản mà không hỗ trợ
thread.
1.2.1.3. Mô hình N:M (thread tích hợp)
Mô hình N:M chỉ ra với N thread ứngdụng tương ứng với M thực thể nhân
Đây là kết hợp giữa cấp nhân (1:1) và cấp người dùng (N:1). Nói chung, hệthống
thread N:M thể hiện phức tạp hơn thread nhân hoặc thread người dùng, bởi vì đòi
hỏi mã của cả thread nhân và thread người dùng.
8
1.2.2. Mô hình truyền thông điệp
Truyền thông điệp là mô hình được sử dụng rộng rãi trong tínhtoánsong
song hiện nay. Nó thường áp dụng cho các hệthống phân tán.
1.2.3. Mô hình songsong dữ liệu
Mô hình songsong dữ liệu nhấn mạnh các thao tác songsong trên một tập
dữ liệu. Các luồng làm việc chung trên cùng một cấu trúc dữ liệu nhưng ở các
phần khác nhau.
1.2.4. Mô hình lai
Là sự kết hợp của hai hay nhiều mô hình lập trình songsong để tạo ra sự
thuận lợi và hiệu quả hơn trong việc tính toán.
1.2.5. Mô hình đơn chương trình đa dữ liệu
Mô hình đơn chương trình đa dữ liệu là một mô hình lập trình ở mức cao
mà có thể thực hiện bởi sự kết hợp các mô hình lập trình songsong ở trên. Một
chương trình được thực thi bởi tất cả các tác vụ cùng một lúc và các tác vụ sử
dụng các dữ liệu khác nhau.
1.2.6. Mô hình đa chương trình đa dữ liệu
Giống như SPMD, mô hình đa chương trình đa dữ liệu (MPMD) là
một mô hình lập trình ở mức cao mà có thể thực hiện bởi sự kết hợp các mô hình
lập trình songsong ở trên.
1.3. Sự cần thiết của công cụ phát triển ứngdụngsongsong
Lập trình là một công việc đòi hỏi cần đầu tư nhiều công sức và thời gian.
Vì thế các môi trường phát triển tích hợp đã được phát triển từ rất sớm nhằm trợ
giúp cho các lập trình viên thuận lợi hơn trong việc lập trình đồng thời làm giảm
thời gian lập trình. Hiện nay, các môi trường phát triển tích hợp như Microsoft
Visual Studio, Borland Studio, Eclipse, thực sự đã làm cho việc lập trình trở lên
dễ dàng thậm chí đối với cả những người mới bắt đầu học lập trình.
9
Chương 2 – NGHIÊNCỨU THƯ VIỆN LẬP TRÌNH SONG
SONG PTHREAD
Thread là một mô hình lập trình phổ biến cho phép nhiều thread đơn có thể
chạy trên cùng một tiến trình, và các thread này có thể chia sẻ tài nguyên của tiến
trình cũng như có thể tínhtoán độc lập. Vàứngdụng hữu ích nhất của mô hình
này là khi nó được áp dụng cho một tiến trình đơn lẻ để cho phép tínhtoánsong
song trên một hệthống đa xử lý. Trong bản luận văn này, tôi sẽ trình bày mô hình
này trên chuẩn IEEE POSIX 1003.1c, được gọi là POSIX thread hay Pthread.
2.1. Giới thiệu về Thread và Multithread
2.1.1. Tổng quan về Thread
Trong khoa học máy tính một chuỗi các tínhtoán kết quả từ một nhánh của
một chương trình máy tính chia thành hai hoặc nhiều nhiệm vụ chạy đồng thời. Sự
thể hiện của các thread và tiến trình là khác nhau trong một hệ điều hành, nhưng
trong hầu hết các trường hợp, một thread được nằm bên trong một tiến trình.
Nhiều thread có thể tồn tại cùng trong một tiến trình và chia sẻ tài nguyên như bộ
nhớ, trong khi những tiến trình khác nhau không thế chia sẻ tài nguyên.
2.1.2. So sánh Thread với tiến trình
Thread khác với tiến trình trong hệ điều hành đa nhiệm truyền thống ở các
điểm sau:
- Các tiến trình thường được độc lập, còn các thread thì tồn tại như là các
tập con của một tiến trình.
- Tiến trình có trạng thái thông tin đáng kể, trong khi nhiều thread trong
một tiến trình chia sẽ trạng thái tiến trình cũng như bộ nhớ và các tài
nguyên khác.
- Tiến trình có vùng địa chỉ riêng biệt, trong khi thread chia sẽ không gian
địa chỉ của chúng.
- Ngữ cảnh chuyển giữa các thread trong cùng một tiến trình thường sẽ
nhanh hơn chuyển giữa các tiến trình.
10
2.1.3. Đa thread và những lợi thế
Multi thread như là một mô hình lập trình phổ biến và cho phép thực hiện
nhiều thread tồn tại trong một tiến trình đơn. Những thread này chia sẻ tài nguyên
của tiến trình nhưng cũng có thể tínhtoán độc lập. Mô hình lập trình thread cung
cấp cho người phát triển những sự hữu ích của việc tínhtoán đồng thời. Lợi thế
này của lập trình multi thread cho phép nó tínhtoán nhanh hơn trên hệthống máy
tính có nhiều CPU, CPU với nhiều nhân hoặc qua một cụm máy – bởi vì những
thread của chương trình cho vay chính bản thân nó để thực hiện sự đồng thời.
2.1.4. Vấn đề đưa ra của thread
Truy cập đồng thời và cấu trúc dữ liệu, những thread trong cùng một tiến
trình chia sẻ cùng không gian địa chỉ, điều này cho phép đồng thời chạy các đoạn
mã thành từng cặp để trao đổi dữ liệu một cách thuận tiện và chặt chẽ mà không
cần chi phí hoạt động hoặc sự phức tạo của giao tiếp liên tiến trình. Tuy nhiên, khi
chia sẽ giữa các thread, kể cả những cấu trúc dữ liệu đơn giản cũng trở nên rủi ro
nếu chúng yêu cầu nhiều hơn một cấu trúc CPU để cập nhật: hai thread có thể cố
gắng cập nhật cấu trúc dữ liệu cùng lúc và tìm thấy những sự thay đổi không mong
muốn.
2.2. Cài đặt Pthread với Visual studio 2008 64bit
Mục này hướng dẫn chi tiết nguồn tải các lib, inlcule và cấu hình Pthread
với Visual studio 2008 64bit.
2.3. Lập trình trên POSIX THREAD
2.3.1. Tổng quan về Pthread
2.3.1.1. Khái niệm Pthread
Thread là một dòng các điều khiển trong một process hay một ứng dụng.
[...]... rõ rằng, với lượng dữ liệu đầu càng lớn, thì hiệu năng tínhtoán của việc sử dụng thuật toán tuần tự càng lớn so với việc không sử dụng tín toánsongsong Như vậy với đề tài “NGHIÊN CỨUTÍNHTOÁNSONGSONG VÀ ỨNGDỤNG VÀO HỆTHỐNGTÍNHCƯỚCDATA3G tôi mong muốn đem lại phần nào kiến thức để giúp mọi người có thể ứng dụng vào các bài toán tínhtoán với số liệu lớn Để tôi có được những kết quả như ngày... và thử nghiệm Ở mục này này nêu lên các nội dung - Cấu hình tại máy tínhcước - Một số kết quả, và hình ảnh thử nghiệm hệ thống 26 3.5 ĐÁNH GIÁ, SO SÁNH SỰ CẢI TIẾN SO VỚI TÍNHTOÁN TUẦN TỰ 3.5.1 So sánh 3.5.1.1 Thời gian tínhtoán tuần tự vàtínhtoánsongsong áp dụng chức năng tách cướcThông tin thời gian thực hiện tínhtoán (tính theo giờ) Số bản ghi Tínhtoán tuần tự Tínhtoán tuần tự Tính toán. .. semaphonre Chương 3 – ỨNGDỤNGTÍNHTOÁNSONGSONGVÀO BÀI TOÁNTÍNHCƯỚCDATA3G VINAPHONE 3.1 Hiện trạng hệthống 3.1.1 Cơ sở hạ tầng - Hệ điều hành: Window 2008 64bit - Bộ vi xử lý: Intel Xeon CPU x7542 24-core 2.7 GHz - Bộ nhớ RAM: 64GB DDR 3 - Ổ cứng: 2.3TB - Database: Oracle 11g 3.1.2 Hệthốngtínhcướcdata3g - Nguồn dữ liệu - Quy trình xử lý - Phần mềm xử lý - Khó khăn và hạn chế 3.2 Giải pháp... quả tínhtoánsongsong nhanh hơn rất nhiều so với tínhtoán tuần tự cùng dùng c++ 27 3.5.1.2 Biểu đồ hiện tínhtoán tuần tự và tínhtoán song song chức năng tách cước chi tiết Hình 3.3 Biểu đồ so sánh thời gian thực hiện 3.5.2 Đánh giá kết quả Với số lượng phần tử nhỏ < 200 triệu bản thì tínhtoán trên tuần tự vàtínhtoánsongsong đều rất nhanh Nhưng khi số lượng bản ghi mô phỏng tăng lên thì áp dụng. .. trong tương lai có thể phát triển và mở rộng theo các định hướng sau: - Hoàn thiện và triển khai cho các cán bộ vận hành tại Trung tâm tínhcước Vinaphone - Xây dựng các form thiết lập các tham số, báo cáo thống kê - Áp dụngtínhtoánsongsongvào chức năng thu thập số liệu - Triển khai áp dụngtínhtoánsongsongvào các hệ thống: o Đối soát dữ liệu: đối soát lưu lượng cước của Vinaphone với các đối... soát lưu lượng cước của Vinaphone với các đối tác Viettel, Mobifone, … o Tổng hợp cước: tổng hợp dữ liệu cước chi tiết vàthông tin thuê bao để tạo dữ liệu hóa đơn - Nghiêncứutínhtoán lưới, đám mây (sử dụng MPI hoặc PVM) - Nghiêncứutínhtoán dữ liệu lớn dùng giải pháp Bigdata, MapReduce - Nghiêncứutínhtoánsongsong trên GPU ... phẩm mới và dịch vụ, tích hợp với sản phẩm của bên thứ 3 - Module chức năng tínhcướcdata3g cho thuê bao trả sau đóng vai trò tínhtoán dữ liệu cước chi tiết, khuyến mại cho khách hàng - Module được xây dựng để thực hiện các chức năng chính sau: o Thu thập thông tin dữ liệu o Sắp xếp thông tin o Tínhcướcdata3g Lọc bản ghi cước trùng, áp giá, khuyến mại theo từng gói cước dịch vụ Cho phép tính. .. ghi mô phỏng tăng lên thì áp dụngtínhtoánsongsong nhanh hơn tuần tự rất nhiều lần 28 KẾT LUẬN Trong khóa luận tốt nghiệp này, tôi đã tìm hiểu về thread, multithread và các lợi thế của thread và multithread so với tiến trình và đa tiến trình Ngoài ra, tôi cũng đồng thời cài đặt thành công vào bài toàntínhcướcdata3g cho Vinaphone để thấy được hiệu quả của việc sử dụng multithread Biều đồ so sánh... nhằm tối ưu hóa các biểu đồ và báo cáo - Quản trị - Giám sát và quản lý tại một điểm duy nhất tất cả các module và các quá trình 21 3.2.2 Giải pháp chi tiết tínhcước Hình 3.2 Mô hình giải pháp tínhcước3g Rating3g có kiến trúc dựa trên nhiều lớp chức năng Điều này cho phép hệthống được triển khai ở quy mô khác nhau, cho các dịch vụ khác nhau và các sản phẩm Ngoài ra, hệthống có đủ linh hoạt để phù... Giải pháp đề xuất Kết hợp với việc tận dụng cấu hình thiết bị phần cứng sẵn có tại Trung tâm, Tôi đề xuất dùng công nghệ lập trình Microsoft Visual C++ 2008 64bit để tận dụng bộ nhớ Ram và áp dụng phương pháp xử lý xong xong để tận dụng số lượng CPU sẵn có của máy chủ 20 3.2.1 Giải pháp tổng thể Tôi xin đề xuất Giải pháp Tínhcướcdata3g cho Trung tâm cước để đáp ứng những yêu cầu đề ra Giải pháp được . 3: Ứng dụng tính toán song song vào bài toán tính cước data 3g cho
Vinaphone.
- Khảo sát hiện trạng hệ thống
- Đề xuất giải pháp tính cước data 3g trên.
“NGHIÊN CỨU TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG VÀO HỆ
THỐNG TÍNH CƯỚC DATA 3G
4
2. Luận văn được tổ chức thành ba chương
Chương 1. Nghiên