Tải bản đầy đủ (.pdf) (43 trang)

Đề tài kỹ THUẬT HIỂN THỊ và điều PHỐI HIỂN THỊ ẢNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.68 MB, 43 trang )

1

TRƯỜNG ĐẠI HỌC LẠC HỒNG
KHOA CÔNG NGHỆ THÔNG TIN
----

----

ĐỀ TÀI:
KỸ THUẬT HIỂN THỊ
VÀ ĐIỀU PHỐI HIỂN THỊ ẢNH

Thực hiện: KS. NGUYỄN PHÁT NHỰT
ThS. NGUYỄN HỒNG LIÊM

Biên Hịa 06 – 2010


2

Lời mở đầu
Màn hình hiển thị độ phân giải cao nhanh chóng trở thành một cơng cụ chuẩn cho nghiên cứu
khoa học. Những loại màn hình độ phân giải cao là những phương tiện duy nhất giúp các nhà khoa học
có thể hiển thị những dữ liệu khổng lồ tạo ra từ những siêu máy tính mơ phỏng hoặc các thiết bị thu
nhận ảnh. Với sự ra đời của màn hình LCD, các nhà nghiên cứu sử dụng nó ghép “lát gạch” với nhau
tạo môi trường hiển thị độ phân giải cao và hiển thị nhiều lọai dữ liệu. Màn hình hiển thị độ phân giải
cao đang trở thành ống kính “hiển vi” mới giúp hiển thị ảnh với kích thước lớn và cho phép xem chi tiết
từng điểm ảnh nhỏ. Nền tảng của mơi trường hiển thị đó là các máy tính kết hợp điều khiển bên dưới
trên cơ sở tính tốn song song với những thuật tốn đồng bộ hóa hiển thị. Vì vậy, đồng bộ giữa các máy
tính đặt ra một thách thức đáng kể để đảm bảo rằng các ảnh hiển thị trên màn hình “lát gạch” xuất hiện
liền mạch. SAGE (Scalable Adaptive Graphics Environment) đã được phát triển cho mục đích này.


Khơng giống như các kiểu hiển thị “lát gạch” khác như Chromium hay Equalizer, SAGE được thiết kế
để quản lý cùng một lúc nhiều hình ảnh hoặc hình ảnh động từ các ứng dụng khác nhau. Nó cho phép
người dùng truy cập đồng thời nhiều ứng dụng trên màn hình hiển thị “lát gạch”


3

MỤC LỤC
Trang
1. Giới thiệu tổng quan ......................................................................................................................... 7
2. Vấn đề và phương pháp tiếp cận ...................................................................................................... 8
3. Những cơng trình nghiên cứu có liên quan .................................................................................... 12
4. Nội dung nghiên cứu ...................................................................................................................... 14
4.1.

Thiết lập hệ thống cluster gồm nhiều máy tính................................................................... 14
4.1.1. Mơ hình hệ thống ........................................................................................................... 15
4.1.2. u cầu phần cứng ......................................................................................................... 15
4.1.3. Cấu hình hệ thống .......................................................................................................... 15
4.1.4. Cài đặt phần mềm........................................................................................................... 15

4.2.

Kỹ thuật hiển thị trên màn hình ghép lát gạch .................................................................... 22
4.2.1. Hai thuật tốn đồng bộ hiển thị ảnh ............................................................................... 23
4.2.2. Thuật toán Two-Phase.................................................................................................... 23
4.2.3. Thuật toán One-Phase .................................................................................................... 24

5. Triển khai, thực nghiệm và kết quả ................................................................................................ 26
5.1.


Kiểu màn hình hiển thị ........................................................................................................ 26

5.2.

Cài đặt và cấu hình phần mềm ............................................................................................ 27

5.3.

Triển khai ứng dụng ............................................................................................................ 40

6. Kết luận, hướng phát triển.............................................................................................................. 42
Tài liệu tham khảo ............................................................................................................................ 43


4

Danh mục các bảng
Bảng ................................................................................................................................................... Trang
Bảng
Bảng
Bảng
Bảng

1-1. bảng so sánh các công cụ SAGE với các công cụ khác. ......................................................... 14
II-1 Cấu hình và điều khiển hiển thị cho các nút trong cluster ....................................................... 27
II-2 Cấu hình sage.conf với các ứng dụng dưới đây....................................................................... 30
II-3 Cấu hình tập tin được sử dụng bởi SAGE UI (sageui.conf) .................................................... 34

Danh mục hình ảnh

Hình ................................................................................................................................................... Trang
Hình 1-1. Màn hình hiển thị LambdaVision sử dụng SAGE ................................................................. 8
Hình 1-2. Hiển thị nhiều ứng dụng trong mơi trường SAGE ................................................................. 9
Hình II-1. Sơ đồ thiết kế hệ thống ............................................................................................................. 15
Hình II-2. Màn hình khở động, gõ lệnh: frontend ................................................................................... 16
Hình II-3. Chọn phần mềm cài đặt ........................................................................................................... 16
Hình II-4. Chọn Kernel/Boot Roll check ’Selected’ ................................................................................ 17
Hình II-5. Hiển thị các phần mềm được chọn, click the ’Next’ button. .................................................. 17
Hình II-6. Điền thơng tin vào biểu mẫu, sau đó nhấp vào ’Next’ button. ............................................... 18
Hình II-7. Đặt ip cho eth0 ........................................................................................................................ 18
Hình II-8. Đặt ip mạng internet ................................................................................................................ 18
Hình II-9. Đặt ip Gateway và DNS .......................................................................................................... 19
Hình II-10. Đặt mật khẩu root .................................................................................................................. 19
Hình II-11. Chọn timezone....................................................................................................................... 20
Hình II-12. Chọn cách phân chia partation .............................................................................................. 20
Hình II-13. Chia partaion ......................................................................................................................... 20
Hình II-14. Copy phần mèm ..................................................................................................................... 21
Hình II-15. Quá trình cài đặt .................................................................................................................... 21
Hình II-16 Hãy chọn mặc định “Compute”, nhấn ’Ok’ ........................................................................... 22
Hình II-17 Xác thực các máy compute .................................................................................................... 22
Hình II-18Thuật tốn đồng bộ hóa Two-Phase. ....................................... Error! Bookmark not defined.
Hình II-19 Thuật tốn đồng bộ hóa One-Phase ....................................... Error! Bookmark not defined.
Hình II-20 kiểu hiển thị song song (Parallel) .......................................................................................... 26
Hình II-21 Lệnh fsConsole và kết quả hiển thị ........................................................................................ 31
Hình II-22 Giới Thiệu hộp thoại SAGE UI và để thiết lập kết nối ......................................................... 33
Hình II-23 Giao diện SAGE UI............................................................................................................... 34


5
Hình

Hình
Hình
Hình
Hình
Hình

II-24 Cấu hình SAGE có thể UI Workspace ................................................................................... 36
II-25 Di chuyển ứng dụng ............................................................................................................... 36
II-26 Thay đổi kích thước một ứng dụng ........................................................................................ 37
II-27 Thay đổi độ sâu tự .................................................................................................................. 38
II-28 Hiển thị hiệu suất đồ thị ......................................................................................................... 40
II-29 Kết quả hiển thị hình ảnh ....................................................... Error! Bookmark not defined.


6

Danh mục các từ viết tắt
API
CPU
GUI
HD
IP
LCD
PC
SDL
TCP
UCSD
UDP
SDL
VNC

WAN
XDMX
OpenGL
GLUT
SAGE
SGE

Application Programming Interface
Central Processing Unit
Graphical User Interface
High Definition
Internet Protocol
Liquid Crystal Display
Personal Computer
Simple Directmedia Layer
Transmission Control Protocol
University of California at San Diego
User Datagram Protocol
Simple DirectMedia Layer
Virtual NetworkComputing
Wide Area Network
Distributed Multi-head Xll
Open Graphics Library
The OpenGL Utility Toolkit
Scalable Adaptive Graphics Environment
Scalable Graphics Engine


7


1. Giới thiệu tổng quan
Trong thời gian một thập kỷ qua, tính tốn hiệu suất cao (high-performance computing) đã chứng
minh giá trị của nó trong các lĩnh vực khoa học, y học, kỹ thuật, giáo dục, và giải trí. Dữ liệu của các
lĩnh vực có nội dung và chất lượng cao được tạo ra dựa trên cơng nghệ tính tốn lưới hoặc máy tính hiệu
năng cao đạt tới terabyte dữ liệu. Cùng với những dữ liệu khổng lồ, đặc biệt là dữ liệu hình ảnh thì cần
thiết có màn hình hiển thị độ phân giải cao hiển thị những dữ liệu ấy. Với sự ra đời của màn hình LCD,
các nhà nghiên cứu sử dụng nó ghép “lát gạch” Error! Reference source not found. với nhau tạo môi
trường hiển thị độ phân giải cao và hiển thị nhiều lọai dữ liệu. Màn hình hiển thị độ phân giải cao đang
trở thành ống kính “hiển vi” mới giúp hiển thị ảnh với kích thước lớn và cho phép xem chi tiết từng
điểm ảnh nhỏ. Ngoài ra, nghiên cứu khoa học ngày càng phát triển và ngày càng trở nên có tính chất
tồn cầu và sự cần thiết có một cơ sở hạ tầng điện toán để hỗ trợ cộng tác, trao đổi, phân phối dữ liệu
giữa các trung tâm nghiên cứu trên tồn Thế giới.
Trong bối cảnh này, phịng thí nghiệm Electonic Visualization Laboratory (EVL) của Đại học
Illinois tại Chicago (UIC) và Viện Viễn thông và Công nghệ thông tin (Calit2) California của Đại học
California, San Diego (UCSD) đã triển khai dự án OptIPuter, cơ sở hạ tầng cho các dữ liệu khoa học
bằng cách sử dụng mạng cáp quang tốc độ cao. EVL và UIC đã phát triển phần cứng và hệ thống phần
mềm hỗ trợ các yêu cầu sử dụng OptIPuter. LambdaVision (xem hình 1) là hệ thống phần cứng: là một
màn hình hiển thị 11x5 lát gạch (55 màn hình LCD), mỗi màn hình 21 inch, độ phân giải 1600x1200
Pixel, 32-node cluster, CPU AMD Opteron 64bit, 4GB RAM, NVIDIA Quadro3000, several NICs, lưu
trữ 1.5TB trên mỗi node, độ phân giải tổng cộng 105 megapixel với băng thông mạng trên hàng chục
gigabit. LambdaVision phát triển thiết bị phụ trợ đo đạc không dây và camera giám sát điều khiển tương
tác giữa người dùng để triển khai dịch vụ khẩn cấp khi cần thiết như: hỏa hoạn, động đất, bão..v.v.. Khả
năng hiển thị độ phân giải cao như LambdaVision là điều cần thiết để vẽ các mơ hình hình học phức tạp
mà không làm mất chi tiết điểm ảnh của chúng. Với mơ hình hình học tạo từ hàng triệu hình tam giác,
nếu nó được hiển thị trên một màn hình máy tính để bàn duy nhất thì chỉ một nhóm nhỏ của những hình
tam giác đó đóng góp vào hình ảnh cuối cùng, đó là hiện tượng mất điểm ảnh. Ngoài ra, các nhà địa lý
làm việc với các bản đồ hình ảnh khơng gian và hình ảnh vệ tinh (365Kx365K) và các nhà sinh học
dựng phim hình ảnh não bộ người bao gồm hàng ngàn hình ảnh chụp từ kính hiển vi có độ phân giải cao
(4Kx4K pixel cảm biến) là những ví dụ tốt để sử dụng LambdaVision, màn hình ghép lát gạch hiển thị
độ phân giải cao.



8

Hình 1-1. Màn hình hiển thị LambdaVision sử dụng SAGE
SAGE (Scalable Adaptive Graphics Environment) là một hệ thống phần mềm hỗ trợ tương tác
khoa học với môi trường hiển thị trực quan độ phân giải cao. SAGE là một "hệ điều hành" cho các môi
trường hiển thị - lát gạch, cho phép người dùng phân phối các ứng dụng trực quan trên các cụm máy
tính điều khiển trực tiếp màn hình lát gạch (xem hình 2). Sự độc đáo của SAGE nằm trong khả năng cho
phép nhiều ứng dụng chạy song song trên các cụm máy tính riêng biệt và cho phép quản lý cửa sổ từ xa
và hiển thị ứng dụng ở bất kỳ phần nào của một màn hình lát gạch. Khả năng này cho phép xử lý đa tác
vụ trên màn hình lát gạch.

Hình 1-2. Hiển thị nhiều ứng dụng trong môi trường SAGE
2. Vấn đề và phương pháp tiếp cận
- Hiển thị ảnh ở độ phân giải cao trên một màn hình rộng và hiển thị tồn bộ ảnh trên một màn
hình. Ví dụ phóng to ảnh độ phân giải 1024x768 pixels lên 16 lần thì ảnh có độ phân giải
16x(1024x768) pixels ~30Mpixels. Với màn hình LCD , 1024x768 pixels, khơng thể hiển thị hết
ảnh có độ phân giải lớn như thế này. Do đó, để hiển thị được tồn bộ ảnh thì cần đến 16 màn hình


9
máy tính LCD ghép lát gạch lại với nhau thành một màn hình duy nhất có tổng độ phân giải bằng
tổng độ phân giải của các màn hình nhỏ ghép lại: 16x(1024x768 pixels) ~30Mpixels

Hình 2-1. Phóng to ảnh độ phân giải 1024x768 pixel lên 16 lần
- Vấn đề đặt ra là làm thế nào để định vị và thay đổi kích thước của cửa sổ ứng dụng hiển thị
trực quan trên màn hình lát gạch, sử dụng SAGE để phân vùng dữ liệu hình ảnh và mỗi phân vùng
vào một vùng màn hình thích hợp hoặc những nút hiển thị. Trường hợp đầu tiên (hình 2-3), mỗi
người dùng chỉ có một cách gửi hình ảnh của ứng dụng trong phân vùng chỉ định, trong đó việc chạy

các ứng dụng trực quan tại các cụm tính tốn từ xa và nhiều dịng điểm ảnh cùng hiển thị trên một
màn hình lớn lát gạch. Tuy nhiên, trong mơ hình thứ hai (hình 2-4), mỗi người dùng có thể quản lý
các cửa sổ ứng dụng trên màn hình lát gạch, người dùng quản lý mỗi phân vùng hình ảnh một cách
độc lập.

Hình 2-3. Phân phối hiển thị phân vùng chung
Hình 2-3. Phân phối hiển thị từng phân vùng riêng
- Vấn đề này được giải quyết bằng cách chuyển dữ liệu pixel thông qua một hệ thống cầu nối
tốc độ cao gọi là SAGE Bridge, được đặt tại lõi ở giữa thiết bị đầu cuối và hệ thống hiển thị (xem
hình 2-4). Bridge SAGE điều khiển nhiều dòng pixel và chia từng dòng pixel hiển thị trên màn hình


10
lát gạch. Nó sao chép dữ liệu theo nhóm pixel và hiển thị trên từng phân vùng pixel. Điều này cho
phép mỗi nút vẽ đầy đủ khung hình (frame) từ SAGE Bridge mà khơng xem xét cách bố trí cửa sổ
và cấu hình hiển thị nhiều lát gạch.

Hình 2-4. Phương pháp tiếp cận SAGE Bridge
Cách tiếp cận phân vùng dữ liệu hình ảnh cho mỗi màn hình lát gạch (endpoint) liên quan đến
việc tạo ra một nhóm các bộ đệm mạng cho mỗi thiết bị hiển thị và sao chép các phần thích hợp của
hình ảnh cho mỗi bộ đệm. Tuy nhiên, trong cách tiếp cận này, thêm một thiết bị hiển thị mới sẽ làm
cho hệ thống có nhiều ảnh hưởng bởi vì dung lượng bộ nhớ đệm nhỏ và băng thông bộ nhớ cần thiết
cho việc sao chép dữ liệu hình ảnh tỉ lệ nghịch với số lượng thiết bị hiển thị. Cách tiếp cận hình ảnh
phân vùng dữ liệu vào các khối pixel có kích thước bằng nhau và tính tốn các điểm đến của chúng
(màn hình hoặc các nút hiển thị) cho mỗi lát gạch hiển thị. Ví dụ, tỉ lệ khung (frame) tối đa của một
hình ảnh động 4Kx2K khơng nén tại một điểm với 6 gigabit/giây (Gbps) băng thơng mạng là 30
khung hình/giây (fps). Trong khi tỷ lệ tối đa ở điểm cuối khác với mạng băng thông 1Gbps chỉ 5fps.
Một cách tiếp cận để xử lý vấn đề này với những thuật toán đồng bộ hóa hiển thị. Vì vậy, đồng bộ
giữa các máy tính đặt ra một thách thức đáng kể để đảm bảo rằng các ảnh hiển thị trên màn hình “lát
gạch” xuất hiện liền mạch và đồng nhất cùng một lúc nhiều hình ảnh hoặc hình ảnh động từ các ứng

dụng khác nhau (xem hình 1-2).
Trong báo cáo này, ngồi việc trình bày cách thức thiết lập hệ thống cluster màn hình hiển thị
độ phân giải cao, chúng tơi trình bày hai thuật tốn đồng bộ hóa hiển thị: two-phase và one-phase để
đồng bộ hóa giữa các máy tính hiển thị ảnh một cách liền mạch. Sử dụng thuật toán để trích xuất
hình ảnh và tính tốn chia đồng đều các điểm ảnh một cách tự động cho tất cả các nút hiển thị. Để
thực hiện điều này, phải duy trì ba bối cảnh khác nhau trong chương trình; một là bối cảnh hình ảnh
theo thứ tự kích thước của hình ảnh, hai là bối cảnh hiển thị trong màn hình hiển thị lát gạch theo tọa
độ và ba là bối cảnh trên mỗi màn hình nhỏ ở mức cục bộ (local).
Mơ hình truyền thống cho điều khiển màn hình hiển thị “lát gạch” là sử dụng toàn bộ bề mặt
màn hình để hiển thị một ứng dụng với độ phân giải tinh tế. Tuy nhiên, các loại màn hình hiển thị


11
này chỉ phát triển về kích thước và độ phân giải; chẳng hạn như những hệ thống WireGL Error!
Reference source not found., Chromium Error! Reference source not found., DMX Error!
Reference source not found., và CGLX Error! Reference source not found.. Trong WireGL biểu
diễn song song hóa hình ảnh từ dữ liệu nguồn đơn. Cách tiếp cận này cho phép một ứng dụng đơn
duy nhất điều khiển màn hình ghép hiển thị dịng (stream) hình ảnh đồ họa song song trên các nút.
Tuy nhiên, nó bị hạn chế về tính năng do hiệu ứng thắt nút cổ chai bởi chỉ duy nhất một luồn dữ liệu
đi vào. Hạn chế này được cải thiện đáng kể và linh hoạt hơn trong Chromium, được thiết kế cho
phân phối nhiều tác vụ điều khiển cluster màn hình hiển thị lát gạch. CGLX khơng phân phối đồ họa
của ứng dụng mà thực thi bản sao của các ứng dụng OpenGL trên tất cả các máy client và tái tạo dữ
liệu trên tất cả các máy client. DMX (Distributed Multihead X) cung cấp một hệ thống mơi trường
tương thích X Window, kết nối nhiều máy tính lại để được một màn hình hiển thị thống nhất. Tuy
nhiên, các hệ thống này cũng chỉ cho phép một ứng dụng thực thi tại một thời điểm trên màn hình
ghép. Do đó, u cầu đặt ra một kiến trúc điều khiển dòng (stream) dữ liệu đồ họa chẳng hạn như
SAGE cho phép di chuyển, thiết lập lại kích thước (resize) ứng dụng và cho phép nhiều cửa số ứng
dụng xếp chồng lên nhau. SAGE là một nền tảng cho các hệ thống hiển thị “lát gạch” phân giải cao.
Không giống như cách tiếp cận khác, chẳng hạn như Chromium, SAGE đồ họa tính tốn cụm
(cluster), và dựa vào việc sử dụng mạng tốc độ cao cho hiển thị dòng pixels. Với SAGE, một giao

diện duy nhất hiển thị như một bức “tường” được điều khiển bởi các nút hiển thị và nhiều cửa sổ có
thể được hiển thị trên tường cùng một lúc. Trong SAGE, các dòng pixel của các ứng dụng được gửi
đến SAGE Receiver (APP). Mỗi ứng dụng được phép kết xuất điểm ảnh của nó đến giao diện ứng
dụng SAGE (SAIL) và hiển thị phù hợp tại vị trí hiện tại và kích thước của cửa sổ cấp phát trên màn
hình lát gạch. Trên mỗi nút có trình quản lý hiển thị NDM chịu trách nhiệm hiển thị các nội dung
của tất cả các ứng dụng trên màn hình; nhiều dịng pixel có thể được hiển thị độc lập nên cho phép
nhiều ứng dụng được hiển thị đồng thời trên màn hình. Trình quản lý Free Space Manager
(FSManager) theo dõi những thông số hiển thị hiện tại và sắp xếp các điểm ảnh tương ứng với ứng
dụng trên màn hình lát gạch. Căn cứ thứ tự sắp xếp, FSManager hướng dẫn SAIL phân phối các
điểm ảnh của một ứng dụng cho các nút hiển thị thích hợp. Ví dụ thú vị là SAGE chạy bốn nút hiển
thị và hiển thị hai ứng dụng như mô tả trong hình 2-5


12

Hình 2-5 Chạy ứng dụng trong SAGE với bốn nút hiển thị với hai ứng dụng App1
và App2, phân phối trên nút 0, 1, 2 và nút 1, 2, và 3 tương ứng.
3. Những cơng trình nghiên cứu có liên quan
Trong phần này thảo luận về một vài cơng trình trước đó có liên quan đến kỹ thuật hiển thị ảnh trên
màn hình hiển thị lát gạch độ phân giải cao. Những hệ thống hỗ trợ phân phối tương tác dựa trên
tính tốn lưới và tính tốn song song của những ứng dụng trực quan khác nhau như:
Phần mềm SGE (Scalable Graphics Engine) là một phần mềm quản lý tài nguyên và nó
cho phép khai thác năng lực các máy điện toán trong cluster (cpu, phần mềm, RAM,..vv.) hiệu quả.
SGE cung cấp nhiều chức năng thiết lập mở rộng. SGE có tính tương tác cao, chấp nhận mọi thơng
điệp gửi đến từ giao diện người dùng dựa trên các hệ thống tích hợp chính sách quản lý tài ngun,
có thể thực thi cả trăm công việc từ khắp mọi nơi kết nối vào hệ thống tại một thời điểm. SGE được
phát triển bởi IBM. Về nguyên lý hoạt động nó sử dụng bộ đệm phần cứng (hardware frame buffer)
cho tính toán song song. Các điểm ảnh (Disjoint pixel fragments) được đưa vào bộ đệm SGE mà
không giao nhau và hiển thị theo cơ chế tiếp giáp ảnh với nhau. SGE hỗ trợ lên tới 16GigE dữ liệu
đầu vào có thể điều khiển 8 hình ảnh hiển thi với hệ thống 2 bộ đệm (double-buffering) hỗ trợ lên tới

16 megapixels. SGE nhận dữ liệu là hình ảnh đồ họa từ nhiều nút (nodes) và nhiều tuyến để hiển thị
hình ảnh có độ phần giải cao (high-resolution).
Phần mềm WireGL [5] biểu diễn (rendering) song song hóa (parallel) hình vẽ (scenegraph) là loại đầu tiên biểu diễn song song hóa hình ảnh từ dữ liệu nguồn đơn (single data source).
Cách tiếp cận này cho phép một ứng dụng đơn duy nhất (single serial application) điều khiển màn
hình ghép hiển thị bởi dịng (stream) hình ảnh đồ họa nguyên thủy (streaming graphics primitives)
được hiển thị song song trên các nodes nhận. Tuy nhiên nó bị hạn chế ở tính năng mở rộng do hiệu
ứng thắt nút cổ chai bởi chỉ duy nhất một luồn dữ liệu đi vào. Khả năng mở rộng hệ thống được linh


13
hoạt hơn (Flexible scalable graphics systems) với các phần mềm như Chromium hoặc Aura được
thiết kế cho phân phối nhiều tương tác (distributing visualizations) và từng cluster điều khiển nhóm
màn hình ghép hiển thị (driven tiled-displays). Tuy nhiên các hệ thống này cũng chỉ cho phép chỉ
một ứng dụng thực thi tại một thời điểm trên màn hình ghép, do đó u cầu đặt ra một kiến trúc điều
khiển dịng (stream) hình ảnh độ họa (graphics streaming architecture) như SAGE hoặc SGE để cho
phép di chuyển (move), thiết lập lại kích thước (resize) và nhiều cửa số ứng dụng xếp chồng lên
nhau (overlap multiple application windows).
Phần mềm XDMX Distributed Multi-head X11: XDMX [16] là hệ thống điều khiển việc
hiển thị hình ảnh trên màn hình ghép (tiled display). Nó bao gồm node proxy server X front-end điều
khiển nhiều X server back-end để tạo thành màn hình lớn (unified large display). XDMX chỉ hỗ trợ
Chromium để hiển thị nhiều ứng dụng (multiple applications) trên màn hình ghép hiển thị (tiled
display). Một ứng dụng đơn giản, Xdmx sẽ cung cấp hỗ trợ kết nối hai máy tính để bàn với nhau,
mỗi máy đều có màn hình hiển thị kết nối với nó. Một ứng dụng phức tạp sử dụng Xdmx là thống
nhất của 4 lưới (Grids) màn hình 1280x1024 (mỗi lưới (Grid) gồm 16 máy tính) thành một màn hình
duy nhất có độ phân giải 5120x4096 Pixels. Xdmx được phát triển và chạy trên nền Linux (ia32 và
x86_64) và đã được thử nghiệm với SGI Irix.Tuy nhiên, XDMX không hỗ trọ ứng dụng song song
(parallel applications). Đây là một giới hạn khả năng mở rộng hệ thống.
Phần mềm SAGE (Scalable Adaptive Graphics Environment) : là một mơi trường đồ họa
tương thích hiển thị hình ảnh với độ phân giải cao. Nó cho phép nhiều người cùng thao tác trên một
màn hình lớn với độ phân giải cao (megapixel), tương ứng với ứng dụng như (vẽ 3D, truy cập từ xa,

video, các bản đồ 2D). Điều này cho phép các cửa sổ ứng dụng được bố trí tại một vị trí trên màn
hình. Kiến trúc của SAGE [3]. bao gồm nhiều tài nguyên. Các nguồn tài nguyên này là tập hợp các
máy tính đơn theo cấu trúc cluster. Những máy tính này kết nối qua mạng tốc độ cao, thích hợp vẽ
đồ họa trên màn hình hiển thị. SAGE cho phép các nhóm cục bộ (local) và các nhóm các nhà nghiên
cứu phân tán (distributed) làm việc cùng nhau trên một lượng lớn phân phối datasets không đồng
nhất. SAGE bao gồm Free Space Manager, SAGE sử dụng thư viện SAIL, SAGE Receiver, và giao
diện người dùng (UI). Free Space Manager là đơn vị điều khiển trung tâm của SAGE. Nó cung cấp
một giao diện trực quan cho việc di chuyển hoặc thay đổi kích thước hình ảnh trên màn hình ghép
(tiled). Khi một cửa sổ đồ họa được di chuyển từ vị trí này đến vị trí khác trên màn hình, các Free
Space Manager sẽ điều chỉnh trực tiếp dòng (stream) pixels của cluster ở xa đến tại vị trí mới, tạo
cho người sử dụng sự có cảm giác rằng họ đang làm việc trên một màn hình máy tính liên tục, mặc
dù mỗi hệ thống của họ có thể ở xa. FreeSpaceManager kiểm sốt dịng (stream) pixel giữa các
SAIL (SAGE Thư viện ứng dụng) và SAGE nhận, và hiển thị các vị trí và kích cỡ của dịng (stream)
hình ảnh (streamed) hình ảnh trên màn hình ghép, tùy theo loại thơng điệp từ phía client của người
dùng (user) gửi đến. Một SAGE nhận (Receiver) có thể nhận được nhiều dịng (stream) pixel từ các


14
ứng dụng khác nhau, và hiển thị trực tiếp điểm ảnh trên nhiều màn hình của màn hình ghép. Người
dùng gửi lệnh từ giao diện người dùng đến trình điều khiển Free Space Manager.
Phần mềm TeraVision [4] được phát triển vởi EVL là một giải pháp mở rộng độ phân
phân giải mà có khả năng truyền đồng bộ nhiều dịng (stream) video có độ phân giải cao giữa các
máy trạm (workstation) với nhau hoặc giữa các cluster với nhau. TeraVision cũng có thể truyền
dịng (stream) hình ảnh đồ họa qua mạng diện rộng. Tuy nhiên, nó điều khiển hiển thị các ứng dụng
tĩnh trên màn hình ghép (tiled). Nó phù hợp cho truyền dịng (stream) hình ảnh đồ họa từ máy tính
để bàn đơn đến hệ thống hiển thị ghép nhưng không phù hợp để hỗ trợ các ứng dụng song song hoặc
nhiều trường hợp khác của các ứng dụng.
SAGE

SGE


XDMX

Chromium WireGL

TeraVision

Đa tác vụ

Y

Y

Y

-

-

-

Đặt vị trí và thay đổi kích
thước cửa sổ
Tách và hiển thị hình ảnh
Hỗ trợ mạng Wan có hiệu suất
cao
Hỗ trợ ứng dụng song song
Khả năng mở rộng nhiều hình
ảnh


Y

Y

Y

-

-

-

Y
Y

Y
-

-

-

-

Y
Y

Y
Y


Y
-

-

Y
-

-

-

Bảng 3-1. bảng so sánh các cơng cụ SAGE với các cơng cụ khác.
Dựa vào bảng trên, SAGE có nhiều ưu điểm hơn so với những phần mềm khác với tính năng đa tiến
trình (multicasting) đa tương tác vụ (Visualcasting) hình ảnh, nên cách tiếp cận SAGE để xây dựng
hệ thống màn hình hiển thị độ phân giải cao phù hợp nhất.
4. Nội dung nghiên cứu
4.1. Thiết lập hệ thống cluster gồm nhiều máy tính
Để có được màn hình có độ phân giải cao 4x(1024x768)pixels, chúng tơi ghép 4 màn hình
LCD (1024 x 768 pixels) lại với nhau. Mỗi màn hình được điều khiển bởi một máy tính có cấu
hình bộ vi xử lý intel core 2 Dual 2,4 GHz, 4 GB RAM, 512KB cache bộ nhớ, card đồ họa
Nvidia AGP 9600, 1 card GigE. Cluster chạy Linux kernel 2.6 – cài đặt bản phân phối
Rocksclusters Error! Reference source not found.. Các máy tính kết nối với nhau thơng qua
Switch Giga 10/100/1000 theo giao thức TCP/IP - tốc độ truyền dữ liệu cao. Việc thiết kế hệ
thống khơng khó, nó giống như một mạng LAN bình thường, nhưng có điểm khác biệt là các


15
máy tính kết nối theo mơ hình cluster – tính toán song song và bộ nhớ phân tán Error!
Reference source not found.. Các máy tính kết nối với nhau thơng qua Switch theo giao thức

TCP/IP – thiết kế hệ thống giống như một mạng LAN bình thường. Nhưng có điểm khác biệt là
các máy tính kết nối theo mơ hình cluster – tính tốn song song và bộ nhớ phân tán.
4.1.1. Mơ hình hệ thống

Hình 4-1. Sơ đồ thiết kế hệ thống
4.1.2. Yêu cầu phần cứng
Máy Frontend
Kích thước tối thiểu của ổ đĩa cứng: 30 GB
Bộ nhớ RAM tối thiểu: 1 GB
Ethernet: 2 ports ("eth0" và "eth1")
BIOS Boot Order: CD, Hard Disk
Máy Compute
Kích thước tối thiểu của ổ cứng: 30 GB
Bộ nhớ RAM tối thiểu: 1 GB
Ethernet: 1 port (e.g., "eth0")
BIOS Boot Order: CD, PXE (Network Boot), Hard Disk
4.1.3. Cấu hình hệ thống
Cluster 4 node điều khiển màn hình hiển thị 2x2. Cluster trang bị bộ vi xử lý intel core 2 Dual
2,4 GHz với 4 GB RAM, 512KB cache bộ nhớ, Nvidia Quadro 3.000 thẻ đồ họa khe cắm
AGP, và một 1 thẻ GigE. Cluster chạy Linux kernel 2.6. Các nút được kết nối với nhau thông
qua một chuyển đổi Switch Giga 10/100/1000.


16
4.1.4. Cài đặt phần mềm
Cài đặt hệ điều hành cho máy Frontend
Trên máy Frontend cần cài đặt các phần mềm sau đây, có thể download các file iso từ trang
web về và ghi ra đĩa CD. Các phần mềm đó bao gồm:
Kernel/Boot Roll CD, Base Roll CD, HPC Roll CD, Web Server Roll CD, OS Roll CD Disk 1, OS Roll CD - Disk 2
Các bước cài đặt hệ thống như bên dưới:

Bước 1: Chèn đĩa CD Kernel/Boot Roll vào ổ đĩa CD của máy Frontend và khởi động
lại máy.
Bước 2: Sau khi máy Frontend boots CD:

Hình 4-2. Màn hình khở động, gõ lệnh: frontend
Bước 3: Sau khi gõ frontend, quá trình cài đặt bắt đầu:

Hình 4-3. Chọn phần mềm cài đặt
Bước 4: Chọn Kernel/Boot Roll:


17

Hình 4-4. Chọn Kernel/Boot Roll check ’Selected’
Lặp lại các bước trên với Base Roll, HPC Roll, Web Server Roll và OS rolls.
Bước 5. Khi bạn đã chọn tất cả rolls cho máy frontend, màn hình sẽ như:

Hình 4-5. Hiển thị các phần mềm được chọn, click the ’Next’ button.
Bước 6. Sau đó, bạn sẽ thấy trên màn hình có các thông tin về Cluster:


18
Hình 4-6. Điền thơng tin vào biểu mẫu, sau đó nhấp vào ’Next’ button.
Bước 7. Cụm tin màn hình cấu hình mạng cho phép bạn thiết lập các thơng số mạng cho
các ethernet network kết nối máy frontend với các máy compute.

Hình 4-7. Đặt ip cho eth0
Bước 8. Cấu hình mạng cho các mạng Ethernet kết nối ra ngồi (internet).

Hình 4-8. Đặt ip mạng internet

Bước 9. Cấu hình Gateway và DNS mục:


19

Hình 4-9. Đặt ip Gateway và DNS
Bước 10. Nhập mật khẩu cho tài khoản root:

Hình 4-10. Đặt mật khẩu root
Bước 11. Cấu hình timezone:


20

Hình 4-11. Chọn timezone
Bước 12. Phân vùng ổ đĩa: chọn phân vùng tự động hoặc bằng tay.

Hình 4-12. Chọn cách phân chia partation
Bước 13. Nếu chọn phân vùng bằng tay, sau đó màn hình phân vùng xuất hiện:

Hình 4-13. Chia partaion


21
Bước 14. Máy frontend sẽ định dạng hệ thống tập tin, sau đó nó sẽ yêu cầu các đĩa CD roll
thêm vào lúc bắt đầu cài đặt frontend.

Hình 4-14. Copy phần mèm
Bước 15. Sau khi CD roll đã sao chép, các gói sẽ được cài đặt:


Hình 4-15. Q trình cài đặt
Bước 16. Cuối cùng, khi hoàn thành, khởi động lại máy.
b. Cài đặt hệ điều hành cho máy Compute
Bước 1. Đăng nhập vào máy Frontend với user root
Bước 2. Chạy một chương trình tạo file ảnh cho các máy compute bằng lệnh:
# insert-ethers. Màn hình hiển thị như bên dưới:


22
Hình 4-16 Hãy chọn mặc định “Compute”, nhấn ’Ok’
Bước 3. Đặt CD Kernel Roll vào máy Compute
Bước 4. Khởi động lại máy Compute.

Hình 4-17 Xác thực các máy compute
Bước 6. Tại thời điểm này, bạn có thể theo dõi tiến trình cài đặt bằng lệnh # rocks-console
compute-0-0 (compute-0-0 là tên của máy compute đầu tiên)
Bước 7. Khi cài đặt hoàn tất, tiến hành cài đặt cho máy compute tiếp theo trong hệ thống.
Bước 8. Sau khi bạn đã cài đặt tất cả các máy compute hệ thống, trên máy Frontend tắt
insert-ethers bằng nhấn phím ’F10’.
Điều này sẽ đặt hệ điều hành cho tất cả các máy compute như compute-1-0, compute-1-1.
4.2.

Kỹ thuật hiển thị trên màn hình ghép lát gạch

Những vấn đề chính trong thiết kế hiển thị là làm thế nào để có hiệu quả ứng dụng hiển
thị hình ảnh nhiều dịng giá khác nhau trên màn hình và làm thế nào để đồng bộ hóa các
dịng dữ liệu với các liên kết hiển thị trên màn hình lân cận. Để giải quyết vấn đề đầu tiên,
SAGE Manager tạo ra một vài kết cấu OpenGL cho mỗi ứng dụng, fetches dữ liệu pixel từ
một vùng đệm SAGE, tải chúng lên và sau đó rút ra một ánh xạ hình chữ nhật dựa vào với
kết cấu cho mỗi ứng dụng. Khi khung hình ảnh mới được tạo ra, thì từng cặp hai kết cấu

được đổi chỗ cho nhau và các hình ảnh được tải xuống và vẽ trên màn hình.
Khi một hình ảnh ứng dụng mới được vẽ trên màn hình, bộ đệm khung của card đồ họa được
xóa hồn tồn, tất cả các hình ứng dụng trên bộ đệm được vẽ lại lên màn hình. Kể từ khi trao đổi
kết cấu xảy ra với một tỷ lệ khác nhau cho mỗi ứng dụng, một hình ảnh ứng dụng thường xuyên
được vẽ lại và một hình ảnh ứng dụng trên màn hình được cập nhật. Nếu trao đổi đệm của card đồ
họa được đồng bộ với tỷ lệ làm mới màn hình, tức là trao đổi đệm bị chặn cho đến khi màn hình
thực sự làm mới. Hình ảnh ứng dụng định kỳ kiểm tra và được cập nhật để làm mới màn hình bất
cứ khi nào một hình ảnh ứng dụng được cập nhật.


23
Tuy nhiên, kết cấu trao đổi và làm mới một nút trên màn hình hiển thị nên được đồng bộ với
nhau. Vì vậy, việc kiểm tra định kỳ để cập nhật hình ảnh phải được thực hiện tại máy chủ và đồng
bộ hóa hơn với các node. Các máy chủ đồng bộ hóa định kỳ, mỗi node sẽ gửi tín hiệu hiển thị cùng
với một thông điệp cho biết mỗi ứng dụng đã sẵn sàng để trao đổi các kết cấu , tức là hình ảnh ứng
dụng được cập nhật.
Một phương pháp điển hình để đồng bộ hóa các kết cấu swapping (cập nhật bộ đệm hình
ảnh) và làm mới màn hình là đặt đồng bộ hóa kết cấu trước khi trao đổi với nhau và đồng bộ hóa
pixel với nhau trước khi làm mới màn hình. Khi quá trình hiển thị đạt tới giai đoạn đồng bộ hóa trao
đổi kết cấu, nó sẽ gửi các tín hiệu đồng bộ hóa đầu tiên vào máy chủ và chờ đợi cho một tín hiệu
đồng bộ từ máy chủ. Máy chủ gửi tính hiệu đồng bộ hóa một khi nó nhận được một bản cập nhật từ
mỗi node màn hình. Thủ tục cùng đồng bộ hóa được lặp lại vào thời điểm đồng bộ hóa làm mới
màn hình. Để hiển thị hình ảnh liên tục trên màn hình hiển thị lát gạch, ứng dụng cần phải được cập
nhật đồng bộ trên tất cả các màn hình nhỏ bên trong. Đồng bộ hóa đặc biệt quan trọng đối với mơi
trường tương tác hình ảnh động. Có ba u cầu đồng bộ hóa:
• Đồng bộ hóa dữ liệu: dữ liệu hiển thị của ứng dụng phải thống nhất. Đó là, các nút khác nhau
phải hiển thị các phần của cùng một frame. Đối với nhiều ứng dụng, đồng bộ hóa dữ liệu phải
được thực hiện cho từng ứng dụng được hiển thị.
• Đồng bộ hóa bộ đệm: Các tiến trình (thread) hiển thị hình ảnh trên mỗi nút (node) phải đồng
bộ hóa nội dung trên bộ đệm đồ họa để các ứng dụng khác nhau hiển thị phù hợp tương ứng

trên màn hình.
• Đồng bộ hóa chu kỳ (gen-lock) trên các phần cứng máy tính: đó là chu kỳ vật lý nằm trên
card đồ họa trên mỗi nút thực hiện đồng bộ. Yêu cầu này phụ thuộc vào việc sử dụng các
phần cứng máy tính chun dụng cho đồ họa.
4.2.1. Hai thuật tốn đồng bộ hiển thị ảnh
Trong phương pháp tiếp cận mới, đồng bộ dữ liệu được thực hiện dựa trên đồng bộ hóa
tổng thể thay cho đồng bộ một dữ liệu riêng cho mỗi ứng dụng. Chúng tơi trình bày hai phương
pháp là: thuật toán Two-Phase và thuật toán One-Phase. Trong cả hai thuật toán, thuật toán TwoPhase đồng bộ trao đổi đệm vượt qua những rào cản của hệ thống mạng sau giai đoạn đồng bộ
hóa dữ liệu; thuật tốn One-Phase thực hiện đồng bộ Network Time Protocol (NTP) trên mỗi nút
và cho độ chính xác cao hơn nhưng có giới hạn là hệ thống phải hỗ trợ NTP.
4.2.2. Thuật toán Two-Phase
Thuật toán Two-Phase bao gồm hai giai đoạn riêng biệt: đồng bộ hóa dữ liệu cho tất cả
các ứng dụng và đồng bộ trao đổi vùng đệm cho các sự kiện trên tất cả các nút hiển thị. Hình 6


24
mơ tả thuật tốn đồng bộ hóa Two-Phase. Trong trường hợp này, chúng ta có một đồng bộ tổng
thể SYNC MASTER. Khi nhận được một Frame mới tương ứng của ứng dụng hiển thị, các nút
gửi thông điệp gồm ID của frame mới và ID của nút tiếp nhận ứng dụng vào MASTER SYNC.
Các MASTER SYNC có bộ đếm thời gian định kỳ được gọi là Sync Refresh Rate (SRR). Khi bộ
đếm thời gian kết thúc, SYNC MASTER tính số frame cao nhất cho mỗi ứng dụng trên tất cả các
nút. Sau khi tính tốn xong cho mỗi ứng dụng, các MASTER SYNC gửi thông điệp cho NDM
trên mỗi node. Thông điệp này chứa một danh sách số frame cao nhất cho mỗi ứng dụng. Các
NDM trên mỗi nút sử dụng danh sách này theo thứ tự các frame trong đó để hiển thị thích hợp
cho mỗi ứng dụng. Khi kết thúc giai đoạn đầu, NDM mỗi node thực hiện giai đoạn thứ hai là
đồng bộ hóa bộ đệm. Đồng bộ hóa bộ đệm các NDM với nhau để hiển thị nhiều ứng dụng trên
màn hình hiển thị.

Hình 4-18 Thuật tốn đồng bộ hóa Two-Phase. Giai đoạn đầu đảm bảo đồng
bộ hóa dữ liệu, và giai đoạn thứ hai đảm bảo đồng bộ bộ đệm.

4.2.3. Thuật toán One-Phase
Trong phương pháp One-Phase, tất cả dữ liệu và đồng bộ hóa bộ đệm được gom chung
trong một giai đoạn duy nhất. Các thủ tục đồng bộ hóa dữ liệu giống với giai đoạn đầu tiên của
thuật tốn Two-Phase. Có một thuật ngữ được giới thiệu trong thuật toán là Thời gian hiển thị
(PT) để thông báo cho mỗi NDM về thời gian trao đổi các nội dung bộ đệm. Sau khi tính toán số
frame cao nhất cho mỗi ứng dụng, các PT của SYNC MASTER cộng thêm thời gian hiển thị là
Time Offset (PTO) tại thời điểm hiện tại. Các MASTER SYNC gửi thông điệp đến từng NDM.
Thông điệp này chứa các PT và danh sách số frame cao nhất cho mỗi ứng dụng. Mỗi NDM chờ
cho đến thời gian PT và sau đó hiển thị frame thích hợp tương ứng cho từng ứng dụng dựa vào
danh sách danh mục số frame. PTO phụ thuộc vào các yếu tố: tải tính tốn trên mỗi node, thời
gian truyền dữ liệu, và tỷ lệ số frame cao nhất giữa tất cả các ứng dụng.


25

Hình 4-19 Thuật tốn đồng bộ hóa One-Phase. Giai đoạn đầu đảm bảo đồng bộ
hóa dữ liệu và đồng bộ hóa bộ đệm.
Mơ tả thuật tốn đồng bộ hóa
For all applications, APP.WAIT_FOR_SYNC = false
Display Thread {
For each application: APP{
If (not APP.WAIT_FOR_SYNC){
Do{
Fetch and download pixel blocks from the block buffer to the back texture
}until (a frame is ready on the back texture or the block buffer is empty)
if(a frame is ready on the back texture) {
Send FIRSTJJPDATE to the sync server
APP.WAIT_FOR_SYNC = true;
}
}

}
If(a TEXTURE_SYNC arrive){//non-blocking sync point TEXTURE_SWAP = false
// an app is active when a part of its image is displayed on this node For active APPs that are
indicated as Ready in TEXTURE_SYNC {
Swap back and front texture
TEXTURE_SWAP = true
APP.WAIT_FOR_SYNC = false // resume pixel downloading for this app
}
if(TEXTURE_SWAP){
Redraw application images on the back frame buffer
Send SECOND_UDPATE
Wait for SCREEN_SYNC
Swap the frame buffers


×