Ứng dụng tính toán lưới cho sàn giao dịch chứng khoán

Trong những năm gần đây, tính toán lưới được phát triển nhưlà phương tiện hiệu quả với mức chi phí thấp, là mô hình tính toán mới cho máy tính và mạng máy tính nói chung. Tính toán lưới giải quyết những bài toán lớn và được dự đoán sẽlà mô hình tính toán của tương lai 00. Trong bài báo này, chúng tôi nghiên cứu đềxuất giải pháp kỹthuật ứng dụng tính toán lưới (Grid computing) vào hoạt động của sàn giao dịch chứng khoán ởnước ta. Trong quá trình nghiên cứu, các tác giả đã xây dựng giải pháp kỹthuật khảthi, cho phép xửlý các lệnh chứng khoán trên lưới tính toán (Computational grid) hoạt động một cách tin cậy. Giải pháp này được xây dựng trên cơsởcủa mã nguồn mở.NET-Based Alchemi Framework hỗtrợphát triển ứng dụng lưới và một sốcông cụkhác. Giải pháp đã được thửnghiệm trên mạng LAN và đã đạt được những kết quảtốt

pdf9 trang | Chia sẻ: lvbuiluyen | Lượt xem: 1913 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Ứng dụng tính toán lưới cho sàn giao dịch chứng khoán, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 158 ỨNG DỤNG TÍNH TOÁN LƯỚI CHO SÀN GIAO DỊCH CHỨNG KHOÁN GRID COMPUTING APPLICATIONS TO STOCK TRADING FLOORS Lê Văn Sơn Trường Đại học Sư phạm, Đại học Đà Nẵng Nguyễn Thành Thủy Trường Đại học Kinh tế, Đại học Đà Nẵng TÓM TẮT Trong những năm gần đây, tính toán lưới được phát triển như là phương tiện hiệu quả với mức chi phí thấp, là mô hình tính toán mới cho máy tính và mạng máy tính nói chung. Tính toán lưới giải quyết những bài toán lớn và được dự đoán sẽ là mô hình tính toán của tương lai 00. Trong bài báo này, chúng tôi nghiên cứu đề xuất giải pháp kỹ thuật ứng dụng tính toán lưới (Grid computing) vào hoạt động của sàn giao dịch chứng khoán ở nước ta. Trong quá trình nghiên cứu, các tác giả đã xây dựng giải pháp kỹ thuật khả thi, cho phép xử lý các lệnh chứng khoán trên lưới tính toán (Computational grid) hoạt động một cách tin cậy. Giải pháp này được xây dựng trên cơ sở của mã nguồn mở .NET-Based Alchemi Framework hỗ trợ phát triển ứng dụng lưới và một số công cụ khác. Giải pháp đã được thử nghiệm trên mạng LAN và đã đạt được những kết quả tốt. Từ khóa: grid computing, grid services, stock exchange for grid computing, Alchemi Framework. ABSTRACT In recent years, grid computing has developed as a low-cost efficient means and a new computational model for computers and computer networks in general. Grid computing solves complicated problems and can be predicted to be a future computational model 00. In this paper, we study and suggest a technical solution for the application of grid computing to the activities of stock trading floors in our country. In this study, the authors have set up feasible technical solutions that enable the stock matching on the computational grid to work with reliability. This solution is built on the basis of an open source. The NET- Based Alchemi Framework supports the development of grid applications and some other tools. The solution has been tested on the LAN and has achieved good results. 1. Đặt vấn đề Tính toán lưới (TTL) cho phép chia sẻ, trao đổi, lựa chọn, tập hợp và phân phối nguồn lực không đồng nhất về mặt địa lý để giải quyết các vấn đề có quy mô lớn hơn trong khoa học, kỹ thuật và thương mại 0. Bên cạnh đó, thị trường chứng khoán (TTCK) là một kênh thu hút và phân phối tài chính không thể thiếu của một nền kinh tế thị trường 0. Cốt lõi của hoạt động trên sàn chứng khoán đó là tiếp nhận và xử lý lệnh đặt mua/bán, những lệnh phát sinh sẽ được khớp một cách tự động và liên tục. Số lượng nhà đầu tư trên thị trường ngày càng tăng, số lượng giao dịch vào những giờ cao điểm có thể đến hàng nghìn, thời gian cần thiết cho một giao dịch đi qua cũng tăng lên và đã dẫn đến tình trạng quá tải của toàn hệ thống. TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 159 Vậy vấn đề đặt ra của một sàn giao dịch chứng khoán (GDCK) là phải có khả năng tiếp nhận đồng thời một số lượng lớn các giao dịch, thời gian xử lý một giao dịch phải đủ nhỏ, đảm bảo sự gắn bó dữ liệu giữa mạng lưới các server được phân bố rải rác về mặt địa lý, nhằm đảm bảo tính liên tục và khả năng chịu lỗi của toàn hệ thống. Một phương pháp được sử dụng phổ biến đó là tất cả được định tuyến thông qua một (một cụm) máy chủ trung tâm. Hệ thống này sẽ làm việc tốt với một thị trường nhỏ hoặc chuyển động chậm chạp, nhưng sẽ nhanh chóng bị tắc nghẽn khi có hàng nghìn giao dịch được xử lý. Cách tiếp cận thị trường tự do mà không có sự giám sát trung ương, không phụ thuộc vào hiệu năng tính toán của hệ thống trung tâm, giải pháp TTL có thể là cách tốt nhất để khắc phục các hạn chế trên 0. Trong đó, quản trị dữ liệu cũng là một trong những thách thức lớn đối với các sàn GDCK. Công nghệ TTL hoàn toàn có thể giải quyết thách thức này với một giải pháp lý tưởng, nó cho phép TTCK chia sẻ và quản lý dữ liệu phân tán với các nhà đầu tư thông qua mô hình lưới dữ liệu (Data grid) 0. Bài viết này, tập trung nghiên cứu và đề xuất giải pháp khả thi để ứng dụng công nghệ TTL cho sàn GDCK, khắc phục tình trạng tắc nghẽn thường xảy ra ở các sàn GDCK. 2. Hoạt động giao dịch chứng khoán 2.1. Qui trình giao dịch chứng khoán Hình 1. Qui trình giao dịch chứng khoán TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 160 Qui trình hoạt động của GDCK 0 được mô tả trong hình 1, bao gồm: Bước 1: Nhà đầu tư đến mở tài khoản và đặt lệnh mua/bán chứng khoán tại một công ty chứng khoán1. Bước 2: Công ty chứng khoán chuyển lệnh đó cho đại diện của công ty tại sở GDCK để nhập vào hệ thống giao dịch của Sở GDCK. Bước 3: Sở GDCK thực hiện ghép lệnh và thông báo kết quả giao dịch cho công ty chứng khoán. Bước 4: Công ty chứng khoán thông báo kết quả giao dịch cho nhà đầu tư. Bước 5: Nhà đầu tư nhận được chứng khoán (nếu là người mua) hoặc tiền (nếu là người bán) trên tài khoản của mình tại công ty chứng khoán. 2.2. Khớp lệnh chứng khoán (Order-matching stock) 2.2.1. Khớp lệnh liên tục Theo qui trình GDCK ở hình 1, thì toàn bộ việc xử lý khớp lệnh được diễn ra tại sở GDCK. Theo yêu cầu về độ ưu tiên khớp lệnh liên tục thì các lệnh được xử lý theo quy tắc FIFO, như vậy những lệnh vào sau sẽ phải nằm trong hàng đợi hệ thống cho đến khi được xử lý, thời gian chờ phụ thuộc vào năng lực của Trung tâm xử lý dữ liệu (TTXLDL) tại sở GDCK. Vậy nếu xảy ra tắc nghẽn trong toàn hệ thống thì khả năng cao nhất là tại TTXLDL giao dịch. 2.2.2. Thuật toán khớp lệnh liên tục xử lý tại TTXLDL của sở GDCK Ký hiệu: - Lt : lệnh của nhà đầu tư phát sinh tại thời điểm t (t phản ánh thứ tự phát sinh lệnh) - Lm, Lb: lệnh đối ứng Mua, lệnh đối ứng Bán - giat và khoiluongt : giá và khối lượng của lệnh Lt - Q, M, B: hàng đợi lệnh Mới phát sinh, lệnh chờ Mua và lệnh chờ Bán - T: tập các lệnh đã khớp thành công và chờ thanh toán bù trừ - Tongdm, Tongdb: tổng dư mua, tổng dư bán Thuật toán khớp lệnh liên tục: Algorithm MATCHING _STOCK(Lt) Description: Giải thuật thực hiện khớp lệnh Lt với các lệnh mua/bán đang chờ khớp Input: Lệnh giao dịch Lt Output: Kết quả khớp, Khối lượng khớp, Tổng dư mua và Tổng dư bán Method: 1 2 Q = Q ∪ { Lt }, Q = Q ∩ { Lk }, k =min(i,j), ∀Li, Lj ∈ Q và i ≠ j if (Lk là lệnh Bán) then // Khớp giá chào Mua 1 Công ty môi giới chứng khoán TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 161 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 do M = M ∩ { Lm }, Lm ∈M, với: giam = max(giau, giav) và giam >= giak ∀Lu, Lv ∈M if (Lm ∅= ) then B = B ∩ { Lk }, break else if (khoiluongk = khoiluongm) then khoiluongk = khoiluongm = 0 T = T∪ { Lk }∪ { Lm }, break else if (khoiluongk < khoiluongm) then khoiluongm = khoiluongm – khoiluongk, khoiluongk = 0 T = T∪ { Lk }, M = M ∪ { Lm }, break else khoiluongk = khoiluongk – khoiluongm, khoiluongm = 0 T = T∪ { Lm } endif while (Lm ≠ ∅ ) else // Khớp giá chào Bán do B = B ∩ { Lb }, Lb ∈B, với: giab = min(giau, giav) và giab <= giak ∀Lu, Lv ∈B if (Lb ∅= ) then M = M ∪ { Lk }, break else if (khoiluongk = khoiluongb) then khoiluongk = khoiluongb = 0 T = T∪ { Lk }∪ { Lb }, break else if (khoiluongk < khoiluongb) then khoiluongb = khoiluongb – khoiluongk, khoiluongk = 0 T = T∪ { Lk }, B = B ∪ { Lb }, break else khoiluongk = khoiluongk – khoiluongm, khoiluongm = 0 T = T∪ { Lb } endif while (Lb ≠ ∅ ) endif Tongdm = ∑ ikhoiluong MLi ∈∀ , Tongdb = ∑ ikhoiluong BLi ∈∀ End Algorithm. Gọi n là số lượng giao dịch chờ khớp, ta có độ phức tạp của thuật toán là: O(n). TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 162 3. Mô hình giải pháp và chương trình thực nghiệm dựa trên Alchemi Framework 3.1. Alchemi Framework Alchemi là một .NET-based framework cung cấp các giải pháp để xây dựng môi trường lưới và phát triển các ứng dụng TTL 0. Alchemi gồm có 4 thành phần chính: Manager (M), Executor (E), User (U) & Cross-Platform Manager (X). Thành phần Manager được triển khai ở máy chủ trung tâm, tiếp nhận các yêu cầu tính toán từ User, tổ chức lập lịch và điều phối các luồng xử lý đến các nút lưới (Executor). Thành phần Executor được triển khai trên các nút lưới, có chức năng tiếp nhận các luồng tính toán được yêu cầu từ Manager và xử lý chúng. Thành phần User là nơi tiêu thụ các ứng dụng lưới của người dùng cuối, các yêu cầu này sẽ được User gửi đi và nhận kết quả về từ Manager. Thành phần Cross-Platform Manager cung cấp các dịch vụ để kiểm soát thành phần Manager thông qua giao diện web. 3.2. Giải pháp ứng dụng tính toán lưới cho sàn GDCK 3.2.1. Mô hình triển khai lưới dịch vụ Hình 3. Giải pháp ứng dụng tính toán lưới cho sàn GDCK Hình 2. Các thành phần của Alchemi U X M E E E E E Custom Grid Middleware U M E X Nút User Nút Manager Nút Executor Nút Cross Platform Manager TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 163 Thành phần User sẽ được triển khai trên hệ thống máy chủ ở các công ty chứng khoán, thành phần Manager được triển khai tại TTXLDL của Sở GDCK, thành phần Excuter thực thi các ứng dụng lưới được triển khai trên mạng lưới các máy tính cộng tác tài nguyên. 3.2.2. Giải pháp xử lý lệnh trên lưới tính toán Theo giải pháp xử lý tuần tự (sequence) truyền thống, khi TTXLDL tiếp nhận một lệnh, lệnh sẽ được chuyển vào hàng đợi xử lý (job queue) để đợi đến lượt xử lý và thanh toán bù trừ (nếu được khớp). Theo mô phỏng ở hình 5. Hình 4. Giải pháp xử lý lệnh tuần tự Giải pháp này đã bộc lộ một số hạn chế của hệ thống như: thời gian chờ của các lệnh vào sau sẽ tăng dần kéo theo thời gian chờ trung bình của các lệnh tăng lên và tỉ lệ thuận với số lệnh phát sinh, TTXLDL sẽ dần cạn kiệt tài nguyên và có nguy cơ tắc nghẽn vào giờ cao điểm, … Để khắc phục hạn chế này, xử lý song song kết hợp với khả năng huy động nguồn lực tính toán đa dạng của công nghệ TTL là giải pháp khả thi. Hình 5. Giải pháp xử lý lệnh song song trên lưới Dựa vào đặc trưng của quy trình xử lý lệnh chứng khoán, chúng ta có thể phân luồng để xử lý lệnh theo nhóm mã chứng khoán và loại giao dịch, các lệnh sau khi TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 164 được lập lịch sẽ được phân phối đến các nút lưới để xử lý, việc này giúp kéo giảm thời gian chờ trung bình của các lệnh và giảm tối đa thời gian chết của các lệnh chờ khớp, theo mô phỏng ở hình 6. 4. Xây dựng chương trình thực nghiệm 4.1. Kịch bản Chúng tôi đã xây dựng một lưới tính toán gồm 1 nút Manager và cụm các nút lưới Executor. Một phân hệ User, cho phát sinh ngẫu nhiên một số lượng lớn các lệnh chứng khoán với số liệu tương đương trong môi trường thực, lần lượt đệ trình các lệnh này theo thứ tự phát sinh đến nút Manager. Nút Manager tiếp nhận và gửi lệnh vào lưới tính toán để thực hiện khớp. 4.2. Triển khai 4.2.1. Môi trường Môi trường thực nghiệm gồm có 7 PC, trong đó 1 PC làm nút Manager và 6 PC là các nút Executor, được kết nối trên mô hình mạng LAN. 4.2.2. Phương pháp Lần lược cho phát sinh ngẫu nhiên: 1000, 2000, 3000, 4000 và 5000 lệnh xử lý trực tiếp trên server local (không sử dụng lưới) và xử lý trên dịch vụ lưới lần lượt với 2, 3, 4, 5 và 6 nút lưới Executor. Sau đó tiến hành quan sát và đánh giá kết quả. 4.2.3. Một số kết quả quan sát Phân hệ trên nút Manager ở hình 7, có chức năng giám sát tình trạng của các lệnh phát sinh (1); chức năng giám sát thông tin khớp lệnh trên sàn (2); chức năng giám sát nhật ký hoạt động của sàn (3). Giao diện trên hình 8, có chức năng phân tích số liệu Hình 6. Hệ thống mô phỏng ứng dụng tính toán lưới (1) 2 1 3 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 165 tăng trưởng chứng khoán bằng biểu đồ kỹ thuật (4), chức năng giám sát trạng thái của các nút Execute trên lưới (5), chức năng giám sát các luồng công việc được phân bổ trên lưới (6). Hình 7. Hệ thống mô phỏng ứng dụng tính toán lưới (2) 4.3. Phân tích kết quả thực nghiệm Kết quả thực nghiệm được biểu diễn trong biểu đồ ở hình 9, phản ánh mối tương quan giữa số lượng lệnh phát sinh và thời gian xử lý (được tính trên đơn vị thời gian là giây) với số lượng nút lưới được huy động để xử lý trong lưới tính toán. Hình 8. Biểu đồ tương quan giữa thời gian xử lý và số nút lưới Qua biểu đồ cho thấy, thời gian xử lý của hệ thống không sử dụng lưới (cột thứ nhất trong mỗi nhóm) tăng dần theo số lượng lệnh phát sinh. Thời gian trung bình để xử lý lệnh cũng tăng dần, năng lực xử lý của hệ thống giảm dần. Ta thấy xuất hiện tình trạng quá tải của hệ thống khi số lượng giao dịch tăng lên. Khi sử dụng lưới tính toán để xử lý, thời gian xử lý của hệ thống giảm kéo theo thời gian trung bình để xử lý lệnh giảm rõ rệt, dấu hiệu quá tải chưa thấy xuất hiện trong hệ thống. Tuy nhiên, khi huy động càng nhiều nút lưới trong lưới tính toán thì mức độ cải thiện về thời gian xử lý vẫn không đáng kể, nguyên nhân ở đây là do chi phí đường truyền, chi phí xử lý các nghiệp vụ phân luồng và lập lịch,… của nút Manager cũng sẽ tăng khi có thêm nhiều nút lưới trong lưới tính toán. 4 5 6 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010 166 5. Kết luận Thông qua bài báo này, các tác giả đã đề xuất một giải pháp kỹ thuật khả thi ứng dụng TTL cho sàn GDCK, tăng khả năng xử lý lệnh giao dịch phù hợp với hoàn cảnh của nước ta. Giải pháp đã được triển khai thực nghiệm và cho kết quả khả quan, hiệu suất và tính ổn định của hệ thống được cải thiện đáng kể so với giải pháp truyền thống. Kết quả thực nghiệm cho thấy, lưới tính toán tăng đáng kể tốc độ xử lý của TTXLDL giao dịch, thời gian xử lý trung bình cho một lệnh cũng giảm rõ rệt. Tuy nhiên, tùy nhu cầu thực tế mà huy động số nút lưới vào lưới tính toán cho phù hợp, nhằm khai thác tối ưu hiệu năng tính toán và giảm chi phí trung gian của hệ thống. Trong môi trường thực lưới tính toán còn phụ thuộc nhiều vào hạ tầng mạng, tốc độ và tính ổn định của môi trường truyền thông. Trong phạm vi nghiên cứu, chúng tôi chỉ mới đề cập đến giải pháp lưới tính toán trong xử lý giao dịch. Lưới tính toán cung cấp các dịch vụ riêng biệt, hoạt động độc lập nhưng chỉ khi kết hợp với lưới dữ liệu thì lưới tính toán mới phát huy hết sức mạnh của mình. Bên cạnh những kết quả đạt được, bài báo vẫn còn một số vấn đề cần phải tiếp tục nghiên cứu phát triển như: • Phát triển lưới dữ liệu cho sàn GDCK, nhằm tăng khả năng liên kết và quản lý dữ liệu hiệu quả của dịch vụ lưới • Tính toán nhu cầu tài nguyên của TTXLDL ở mỗi thời điểm để đảm bảo sự huy động tối ưu các nút lưới • Khả năng khai thác nguồn lực tính toán từ chính PC của các nhà đầu tư sử dụng để truy cập dịch vụ cũng là một hướng phát triển, nhằm huy động tối đa nguồn lực tính toán và giải quyết thế bế tắc về năng lực tính toán của các giải pháp truyền thống khi số lượng truy cập dịch vụ tăng lên. TÀI LIỆU THAM KHẢO [1]. Nguyễn Văn Hân (2009), Giáo trình Thị trường và các định chế tài chính, trường Đại học Kinh tế - Đại học Đà Nẵng. [2]. Cisco Systems, Inc. (2008), Trading Floor Architecture. [3]. Krishna Nadiminti, Akshay Luther, Rajkumar Buyya. Alchemi: A .NET-based Enterprise Grid System and Framework. [4]. Rajkumar Buyya and Srikumar Venugopal. The Gridbus Toolkit for Service Oriented Grid and Utility Computing: An Overview and Status Report. [5]. Stock Market Data Grid. market-data-grid-a-tool-which-promotes-efficiency-545619.html#ixzz0luG59Nqn, Truy cập 24/4/2010. [6]. Stock exchange for ‘grid’ computing. Truy cập 24/4/2010.
Luận văn liên quan