Thứ Hai, 10 tháng 11, 2008

Folding@home (F@H, FAH) cho thế hệ mai sau

Tôi biết Folding@home (viết tắt là F@h hoặc FAH) từ trước đây, nhưng tôi đã không thực sự hiểu được ý nghĩa của nó lắm nên đã không tham gia ở thời điểm đó. Thời gian gần đây thì do một sự vô tình đọc lại một vài thông tin về y khoa nên tôi đã nhớ lại và tìm kiếm thông tin về dự án Folding@home. Sau khi hiểu kỹ hơn về ý nghĩa, tôi cảm thấy mình cần tham gia để có thể mong góp một sức lực nhỏ bé với chiếc máy tính của mình cho con người ở thế hệ mai sau - trong đó có con cháu và những hậu duệ của tôi.
Hình mô phỏng cấu trúc không gian của một protein [nguồn ảnh]

Folding@home là gì? Tại sao?

Folding@home (Folding At Home) là một phần mềm thuộc một dự án của trường Đại học Stanford thực hiện ở các máy tính khắp nơi trên thế giới để tính toán sự xoắn lại của các protein. Để hiểu được tại sao cần phải thực hiện FAH, xin hãy xem một số thông tin về sự xoắn lại của ptotein như dưới đây:

Theo các sách giáo khoa phổ thông thì: Protein (Protit hay còn gọi là "Đạm") là những đại phân tử được cấu tạo theo nguyên tắc đa phân mà các đơn phân là axít amin. Chúng kết hợp với nhau thành một mạch dài nhờ các liên kết peptide (gọi là chuỗi polypeptide). Các chuỗi này có thể xoắn cuộn hoặc gấp theo nhiều cách để tạo thành các bậc cấu trúc không gian khác nhau của protein. (vi.wiki).

Giống như enzymes, proteins là thành phần căn bản thúc đẩy cho quá trình sinh hoá được hoàn tất. Như phân tử cấu trúc, chúng là thành phần chính tạo ra xương, cơ bắp, tóc, da và mạch máu. Về kháng thể, chúng nhận diện những nguyên tố độc hại và để cho hệ thống miễn nhiễm hoạt động để trừ khử độc tố. Vì những lý do này, các nhà khoa học gia đã kết hợp lại thành nhiễm sắc thể của loài người - văn bản nghiên cứu về tất cả các proteins trong sinh học.

Tuy nhiên, quá trình này chỉ cho chúng ta biết chút ít về protein làm gì và hoạt động ra sao. Để thực hiện được nhiệm vụ của chúng (ví dụ như enzymes, antibodies), protein phải hợp thành một hình thể nào đó - còn gọi là "fold". Bên cạnh đó, proteins là những cỗ máy tuyệt vời: trước khi bắt tay vào việc, chúng tự kết lại với nhau! Việc tự kết hợp này gọi là "folding". Một trong số những mục tiêu của chúng tôi là giả lập sự xoắn của protein là để tìm hiểu làm sao protein có thể xoắn quá nhanh và quá chính xác như vậy, đồng thời tìm hiểu về hậu quả khi quá trình xoắn bị sai lệch (proteins misfold)

Điều gì xảy ra nếu quá trình xoắn của protein bị sai? sẽ gây các chứng bệnh như Alzheimer, cystic fibrosis, BSE, vv... và nhiều căn bệnh ung thư khác. Khi bị sai lệch một số có thể kết lại thành một khối và tạo thành các khối u. Những khối này nếu xuất hiện ở não và được xem là nguyên nhân gây ra bệnh Mad Cow (bò điên) hoặc Alzheimer.

Điều kinh ngạc không phải vì proteins tự kết xoắn - fold - mà vì tốc độ của chúng: có khi lên đến một phần triệu giây. Trong khi khoảng thời gian này quá nhanh đối với con người, thì nó lại quá chậm đối với máy tính để tiến hành thực hiện việc tính toán hình thành. Sự thật thì mất khoảng một ngày để giả lập một phần triệu giây (nanosecond). Không may rằng proteins fold mất khoảng mười ngàn nanosecond; do đó, sẽ phải cần mười ngàn ngày (xử lý với máy tính) để giả lập folding - đây là thời gian quá lâu cho một kết quả.

Thống kê thời gian qua và nội suy dự đoán số người bị bệnh Alzheimer chỉ tính riêng ở phạm vi hẹp là Hoa Kỳ. Làm thế nào để khi già đi chúng ta không bị bệnh này?. [nguồn]

Để vượt qua được những rào cản về kinh phí và thời gian thì Đại học Stanford đã tận dụng những máy tính nhàn rỗi ở khắp nơi trên thế giới cùng tham gia vào quá trình tính toán để tạo thành một hệ thống máy tính lớn cho các dự án. Sau những thử nghiệm tính toán với các protein nhỏ ban đầu để kiểm nghiệm phương pháp, dự án FAH đã kết luận về phương pháp nghiên cứu cũng như hình thức thực hiện bằng việc kết hợp các máy tính đơn lẻ là hợp lý. Hiệu năng của nguồn máy tính khắp nơi trên thế giới đem lại có thể lớn hơn nhiều lần so với việc sử dụng các siêu máy tính. Ví dụ như mức độ hoạt động của khoảng 200.000 máy tính đơn lẻ đang hoạt động cho dự án FAH đã tương đương với khoảng 5.000 siêu máy tính chuẩn.

Trang web của FAH viết:

Phần lớn công việc của chúng tôi trong những năm đầu của dự án FAH nhằm để phát triển và thử nghiệm các phương pháp này trên những hệ thống hiện đại : các protein nhỏ được nghên cứu thử nghiệm 1 cách dễ dàng. Với những so sánh thử nghiệm này, chúng tôi có thể kiểm tra và công nhận giá trị của các phương pháp mới cùng việc tìm ra những hạn chế của chúng tôi (mà điều này là vấn đề then chốt trong việc cải tiến phương pháp tính toán của chúng tôi).

Cho đến ngày hôm nay, dự án FAH đã rất thành công với hơn 25 dự án đã được phổ biến trong 5 năm đầu tiên trực tiếp có được từ những tính toán của dự án FAH (và sẽ còn nhiều hơn nữa). Chúng tôi sẽ tiếp tục làm việc với tất cả các rào cản : những core tính toán mới, những thuật toán mới, các mẫu protein mới, các câu hỏi mới liên quan đến việc thử nghiệm các phương pháp của chúng tôi, các ứng dụng để nghiên cứu các loại bệnh tật và các vấn đề khác về dược sinh.[1]

Như vậy thì dự án FAH đã thực sự là một dự án hữu ích cho nghiên cứu để giải mã những căn bệnh nan y mà hiện nay khoa học hiện đại chưa tìm được các thuốc chữa hiệu quả mà điển hình nhất là chứng bệnh ung thư. Tôi bị thuyết phục tham gia FAH bởi những điều này, và đó cũng là lý do mà tại sao tôi viết một entry như vậy để mong bạn cũng tham gia vào dự án này giống như hàng triệu người khác, và cũng giống như tôi. Mặc dù không có chuyên môn về sinh học cũng như về y khoa, nhưng tôi đã cố gắng tự tìm hiểu để tự tích luỹ kiến thức cho mình và cũng là để thuyết phục bạn. Với tôi, để biết được những kiến thức xa lạ với chuyên môn mình được đào tạo là một sự cố gắng, nhưng để giúp cho con người ở thế hệ tiếp theo (hoặc là chính tôi nếu kịp hưởng những thành quả đó). Tôi nghĩ những người thân, hậu duệ của mình được khoẻ mạnh hơn, chống được bệnh tật tốt hơn nhờ các loại thuốc hoặc vắc xim phòng chống các bệnh nan y sẽ bắt đầu từ hôm nay, từ những công sức của chiếc máy tính mà tôi đang sở hữu.

Nếu bạn muốn tham gia, bạn cần có những gì và cần làm gì?

Nếu như bạn muốn tham gia vào việc tính toán cùng với dự án FAH, bạn có thể thực hiện được điều đó rất đơn giản chỉ với một máy tính cá nhân và một đường truyền Internet mà thỉnh thoảng có thể kết nối được với máy chủ của dự án để tải về các phần tính toán và tải lên các kết quả đã tính toán thành công.

Bây giờ, tôi hướng dẫn bạn thực hiện việc tải về phần mềm nhỏ để có thể tham gia FAH, và trong đó thì tôi cố gắng giải thích những gì mà tôi biết sau một khoảng thời gian ngắn tham gia vào dự án này.

Bạn vào trang http://folding.stanford.edu/ , ở đây bạn có thể nhìn thấy nội dung bằng tiếng Anh, nếu đó là thứ ngôn ngữ quen thuộc đối với bạn thì việc đọc các hướng dẫn sau đây có thể là không cần thiết đối với bạn, tuy nhiên nếu như chưa thông thạo lắm (tôi thì cũng vậy) thì bạn nên tìm đến liên kết nội dung trang này bằng tiếng Việt, nó ở bên lề trái - hãy bấm vào liên kết có chữ "Tiếng Việt" ở đó. Và đây rồi, trang đó có liên kết như thế này: http://folding.stanford.edu/Vietnamese/Main

Ở đây, bạn có thể nhìn thấy một nút download lớn như thế này, bạn bấm vào đó (hoặc có thể bấm ngay vào nút đó ở blog này cũng được) sẽ ra một trang lựa chọn các loại client phù hợp để có thể tải về.

Trang download http://folding.stanford.edu/Vietnamese/Download có một mục lựa chọn tên của bạn. Bạn thử kiểm tra về một nickname mà bạn dự định sẽ đặt khi tham gia vào dự án FAH, nếu kết quả kiểm tra ở ô này không tìm thấy bất kỳ ai đã thực hiện FAH với cái tên đó thì có nghĩa rằng bạn có thể lựa chọn cái tên này trong suốt quá trình thực hiện dự án này của mình. Nếu bạn khó quyết định về một cái tên thì có thểm tham khảo thêm về các loại tên đang được sử dụng tại trang kết quả của Vietnam Global Team (có số hiệu của đội là 38156, xin hãy nhớ con số này để thiết lập về sau) - nơi có khoảng 650 người Việt Nam đang thực hiện dự án. Tôi cũng có kết quả của mình tại đó với tên minhlinh36, và có thể tự hào rằng sau khi tham gia khoảng một tháng thì thứ tự của tôi hiện đang đứng ở nửa trên trong tổng số những người tham gia: 421.653 trên tổng số 1.124.518 những người trên thế giới và 287/655 người tham gia theo Vietnam Global Team ^_^)[3]. Nếu như bạn không sử dụng các tên riêng thì có thể sử dụng những đóng góp âm thầm với nickname chung là anonymous, nhưng tôi nghĩ bạn không nên không sử dụng tên chung như vậy bởi vì sau một thời gian thì cần xem kết quả của mình như thế nào sẽ tốt hơn với các tên riêng.

Ở trang này có nhiều phần mềm client khác nhau để bạn lựa chọn phù hợp với hệ điều hành mà bạn đang sử dụng. Thông dụng nhất có lẽ là bạn đang sử dụng Windows, bạn có thể tải về bản dành cho Windows XP/2003/Vista (System tray client installer with viewer, còn một bản khác nữa nhưng cũng cho các hệ điều hành này nhưng ở chế độ dòng lệnh nên có thể hiện tại chưa phù hợp với những người mới sử dụng như tôi định giới thiệu) với phiên bản hiện tại là 6.20. Nếu như bạn đang sử dụng các hệ điều hành khác thì các bản client cũng đều có sẵn (ví dụ cho Linux, Mac OS X hoặc cả máy chơi game Sony PlayStation 3 cũng có thể tham gia). Nếu bạn thắc mắc về chữ client thì người ta thường gọi đối với các phiên bản máy khách/máy con/máy tính kết nối thành mạng và client là một nút mạng trong một hệ mạng nào đó.

Cài đặt và thiết đặt FAH client

Bây giờ bạn tải về bản client cho Windows, với phiên bản 6.20 thì dung lượng của chúng vào khoảng 2,7 MB thôi. Bạn thực thi file này bằng cách click đúp vào nó để cài đặt client, không có gì đặc biệt hoặc đòi hỏi phải thiết lập các thông số trong tiến trình cài đặt nên bạn chỉ việc bấm Next cho đến khi hoàn tất quá trình cài đặt.

Sau khi cài đặt, FAH client không tự khởi động vào làm việc ngay, cả các phiên làm việc của Windows cũng vậy, chúng không tự động khởi động khi hệ điều hành khởi động. Những thiết đặt này hoàn toàn phụ thuộc vào người sử dụng muốn chạy client hay không trong mỗi phiên làm việc của Windows.

Lần hoạt động đầu tiên bạn cần thiết đặt một số thông số cho FAH làm việc. Chuột phải vào biểu tượng của FAH trên khay đồng hồ (có biểu tượng giống như những quả cầu có nhiều màu gắn với nhau), chọn Configure... để tiến hành thiết đặt, tinh chỉnh chế độ làm việc của client.

Theo thứ tự có các Tab như sau ở phần thiết đặt, tôi sẽ giải thích các mục theo cách hiểu của mình. Trong trường hợp cần tìm hiểu kỹ hơn, bạn có thể xem thêm ở trang hỗ trợ của dự án.

Phần User name:

Theo mặc định thì tên được điền sẵn trong phần này là Anonymous - tức là tài khoản khách, ẩn danh, đóng góp âm thầm. Như tôi đã nói ở trên thì bạn nên tự lựa chọn theo tên riêng của mình (hoặc một nickname đại diện cho bạn). Những phần này không khó khi mà bạn quay lại trang download FAH để kiểm tra lại tên của bạn (xem đã được ai sử dụng hay chưa) để tự đặt một tên cho bạn vào phần đó. Xin lưu ý rằng phần tên của bạn sau khi kiểm tra cũng có thể có một nguy cơ (tuy rất thấp) rằng đã có người sử dụng rồi - bởi họ chưa tải lên kết quả tính toán nên hệ thống không nhận biết được sự tồn tại đó mà thôi.

Tiếp sau lựa chọn tên là lựa chọn về đội của bạn tham gia. Theo một số người viết cho Wikipedia ở phiên bản tiếng Anh thì việc gia nhập và các đội sẽ nhận được nhiều điểm hơn so với thực hiện tính toán mà không tham gia bất kỳ đội nào (nhưng dẫn chứng của khẳng định này thì đưa tôi đến một liên kết đã không còn tồn tại, nhưng chúng ta cứ tạm tin rằng điều đó đúng). Có rất nhiều đội cùng tham gia cho quá trình tính toán, thậm chí rằng chính bạn cũng có thể lập được một đội và cùng với bạn bè/lớp/nhóm/địa phương...của mình thực hiện, tuy nhiên nếu bạn là người Việt Nam thì tôi khuyên rằng chúng ta nên theo đội chung, tức là Vietnam Global Team - đội lớn nhất ở Việt Nam hiện nay. Với đội này bạn nhập số 38156 vào ô Team number.

Bản đồ phân bố các đội thực hiện dự án FAH trên thế giới (tính đến 05/2008), [nguồn ảnh]

Passkey là điều mà tôi thắc mắc về chúng khi mà mới tham gia, tôi chẳng rõ được nó là gì và cảm thấy không có vấn đề gì nếu bỏ trống. Sau này thì tôi nhận thấy passkey có vẻ khá quan trọng và đã đăng ký và nhập thông số này vào.

Passkey giúp cho bạn khẳng định chính mình sở hữu tên nickname mà bạn đã nhập vào client của dự án FAH. Bạn thấy rằng nếu như việc lựa chọn tên một cách rất dễ dàng như vậy thì một người khác cũng có thể nhận nickname đó là của họ, và do đó thì tuy không ảnh hưởng đến hiện tại nhưng rất có thể một quyền lợi trong tương lai (nếu có) thông qua thực hiện dự án này thì bạn không thể chứng minh mình là chủ nhân của nickname của chính bạn.

Để có được passkey, bạn có thể xem trang http://folding.stanford.edu/English/FAQ-passkey rồi vào phần http://fah-web.stanford.edu/cgi-bin/getpasskey.py , tại đây bạn nhập username lựa chọn của mình và địa chỉ email. Sau khi đăng ký thì passkey sẽ được gửi vào email mà bạn đăng ký, bạn cần mở email đã đăng ký ở trên để lấy passkey, sau đó bạn nhập vào đúng ô của nó[3].

Phần Connection

Trong phần thiết đặt thì tab Connection cho thiết đặt kết nối client với các máy chủ của dự án FAH này. Như vậy rằng bạn thấy rằng FAH client không phải lúc nào cũng kết nối với Internet, chúng chỉ kết nối để tải về khối lượng công việc cần thực hiện rồi kết nối tải lên công việc đã thực hiện xong. Chỉ khi tải lên hoàn tất thì bạn mới có các điểm xác nhận hoàn thành công việc. Việc kết nối này gián đoạn trong thời gian tối thiểu trong khoảng một vài giờ (với nhiệm vụ đơn giản, ngắn, nhưng chúng thì cũng được ít điểm) hoặc thời gian đến hàng tuần và nhiều tuần đối với các nhiệm vụ cần tính toán nhiều thời gian.

Ô lựa chọn Ask before using network sẽ đòi hỏi client phải đề nghị bạn xác nhận trước khi nó kết nối đến Internet. Tôi nhận thấy thiết lập này thường phù hợp đối với kết nối kiểu quay số - tức là không phải lúc nào cũng online trên Internet - bởi vì chúng có thể làm gián đoạn quá trình trao đổi nhiệm vụ thực hiện của client. Giả sử rằng việc FAH thực hiện liên tục trên máy tính của tôi mà thời điểm tôi không ở máy tính thì chúng sẽ không tự thực hiện việc tải lên kết quả và tải về nhiệm vụ mới khi tôi thiết lập đánh dấu vào ô này - do đó việc FAH bị gián đoạn mất một thời gian.

Phần thiết đặt Set a proxy server chỉ thiết đặt khi mà máy tính của bạn khi kết nối ra Internet phải thông qua một proxy. Thông thường thì nếu bạn dùng Internet tại gia đình của mình (tức là có một modem ADSL riêng) thì không cần phải lựa chọn vào mục này - bởi vì lúc đó bạn biết rằng mình không phải qua proxy nào cả (trừ khi chính bạn có vài máy tính và tự mình thiết lập lấy một proxy riêng). Nếu như bạn đang cài client ở cơ quan/công sở của bạn mà việc kết nối Internet phải thông qua proxy thì cần thiết đặt tại mục này.

Nếu bạn đang ở công sở mà không biết rằng mình có kết nối qua proxy hay không thì bạn nên hỏi người quản trị mạng tại cơ quan xem hệ thống Internet có sử dụng proxy hay không, thông số của chúng là thế nào để thiết lập cho mục này, tất nhiên chỉ hỏi khi mà bạn chưa biết. Trong nhiều trường hợp thì bạn có thể xem trong các phần thiết đặt proxy của trình duyệt web của bạn (ví dụ như Internet Explorer hoặc Mozilla Fifox) cũng được thiết lập các thông số của proxy này. Lưu ý một điều rằng proxy này thuộc loại bảo mật nội bộ của mạng chứ không phải các proxy để vượt qua tường lửa của các ISP đâu nhé ^_^.

Phần thiết lập tiếp theo là ô chọn có nội dung "Allow receipt of work assignments and return of results greater than 10 MB in size" nếu đánh dấu sẽ cho phép client tải về các đơn vị tính toán lớn, cũng theo đó thì kết quả hoàn thành lớn, mất nhiều thời gian xử lý và cũng có điểm đại được cao hơn. Tôi đã đánh dấu vào mục này và quả thật có lần phải chạy máy tính hàng tuần mới hoàn thành một đơn vị tính toán, bù lại thì điểm tăng lên rất nhanh.

Xin lưu ý rằng thiết lập này cũng chiếm dụng một lượng RAM đáng kể của hệ thống của bạn dành cho tính toán. Chúng có thể sử dụng tầm 128 MB đối với một đơn vị xử lý dài của tôi trong suốt một tuần, tuy nhiên nếu RAM thừa thãi thì vấn đề này không quan trọng lắm - một mặt khác thì giá RAM vào thời điểm Quý IV năm 2008 này cũng rất rẻ cho bạn nâng cấp - do đó có vẻ chúng thì ít quan trọng bằng các ảnh hưởng khác. Một mặt khác thì sự chiếm dụng bộ nhớ chính thì không quá nhiều, tôi thì ghi nhận được rằng khoảng 50 đến 100 MB tuỳ theo độ lớn của đơn vị tính toán.

Phần thiết lập mục này liên quan đến việc phân phối cho máy tính của bạn chạy FAH và tình trạng của bạn, những lần đầu tiên thì không nên đánh dấu ngay cho đến khi bạn nghĩ mình sẽ thực hiện FAH lâu dài.

Phần Advanced

Phần này bao gồm các phần mục thiết lập cho FAH client hoạt động, nó bao gồm việc tinh chỉnh mức độ làm việc của CPU, thời gian ghi lại kết quả...

Lựa chọn ở Core Priority chứa thiết đặt về sự chiếm dụng CPU khi bạn tiến hành FAH. Theo như lời khuyên của chính client này thì bạn nên để nguyên không thay đổi thiết đặt mặc định của nó để đạt được sự cân bằng khi tính toán FAH và công việc của mình trên máy tính. Ở thiết đặt (mặc định) Lowest possible sẽ giúp cân bằng khi ứng dụng bạn đang làm việc mà không cảm giác thấy sự chậm đi rõ rệt khi CPU bị chiếm hoàn toàn bởi FAH.

Phần thanh trượt dùng để thiết đặt: CPU Usage Percent xác định mức độ hoạt động của CPU. Theo mặc định thì chúng được đặt ở mức 100% (tối đa ở phía bên phải), tôi nghĩ rẳng nên thiết đặt chúng thấp đi một mức so với mặc định, tức là về một nấc so với nấc tối đa, khi này CPU sẽ hoạt động ở mức khoảng 92% để có thể cân bằng đối với các ứng dụng khác. Thực tế hoạt động của client cho thấy rằng không phải thiết đặt này là để cho việc tính toán thực hiện ở mức độ CPU như vậy, mà là ngưỡng để CPU hoạt động trong hệ thống, tức là khi mà một phần mềm nào đó chiếm khoảng 40% CPU thì client sẽ chỉ làm việc khoảng 50% hoặc hơn để không bị chiếm dụng toàn phần khả năng xử lý của CPU và thoả mãn điều kiện CPU chỉ hoạt động ở mức 100% là tối đa (điều này hiển nhiên rồi).

Theo như thiết đặt ở mục Core Priority thì việc xử lý tiến hành theo sự đan xen giữa FAH và các ứng dụng khác, tuy nhiên nếu như bạn cảm thấy việc xử lý này trở lên chậm chạm thì nên hạ các mức xử lý xuống bằng cách kéo thanh trượt này về các vị trí ở phía bên trái.

Phần lựa chọn Disable highly optimized assembly code chỉ nên thực hiện khi mà bạn gặp một vài lỗi của hệ thống (hoặc xảy ra những điều bất thường đối với hệ thống máy tính của bạn), đa phần lỗi có thể xảy ra là về phần mềm hoặc các ứng dụng bị trục trặc. Khi lựa chọn này thì client sẽ không sử dụng các tối ưu hoá và vô hiệu hoá việc sử dụng tập lệnh SSE của CPU. Tất nhiên là đánh dấu vào đây thì client sẽ hoạt động chậm đi, kết quả tính toán sẽ mất nhiều thời gian hơn.

Nếu như máy tính của bạn có hệ tản nhiệt chưa được tốt cho lắm thì bạn nên đặt ở các mức thấp hơn bởi việc xử lý 100% bộ xử lý sẽ làm tăng nhiệt độ của CPU lên. Cũng như những bước overclock thì bạn có thể đặt ở mức độ 50% sau một thời gian thì tiếp tục tăng lên cho đến khoảng tầm 80-90% để xem mức độ đáp ứng của máy tính của bạn như thế nào.

Phần thiết đặt Checkpointing frequency cũng có dạng thanh trượt đến các vị trí cố định. Đây là phần thiết lập khoảng thời gian mà client sẽ lưu lại kết quả tính toán vào thư mục làm việc của FAH. Thông thường thì việc tính toán sẽ chiếm nhiều thời gian nên mỗi khi tắt máy tính hoặc các sự cố mất điện lưới sẽ bị mất thành quả tính toán tạm thời cho đến thời điểm lưu lại trước đó. (Hành động lưu lại này cũng tương tự như việc tự động lưu lại một trang văn bản sau mỗi 10 phút ở các phần mềm soạn thảo và xử lý văn bản vậy). Mức mặc định là 15 phút lưu kết quả một lần, nhưng bạn có thể điều chỉnh chúng tăng hoặc giảm.

Nếu bạn tăng thời gian giữa hai lần lưu lại lên quá cao (tới 30 phút) thì khi thoát khỏi hệ điều hành (tắt máy hoặc khởi động lại) thì lần kế tiếp client sẽ phải tính toán lại trong nhiều hơn. Do đó tôi thì đặt mức này là 10 phút và cảm thấy đó là một mức hợp lý.

Phần Do NOT lock cores to specific CPU dùng để tránh khoá các nhân (lõi) của CPU hoạt động cố định vào một nhân nào đó nếu nó đang được khởi động hoặc bắt đầu. Khi đánh dấu vào mục này thì bạn phải có một CPU đa nhân, khi đó client sẽ tự động chuyển sang hoạt động đối với nhân CPU nào đang còn rỗi rãi với việc xử lý đối với các ứng dụng thông thường. Cũng như ở entry "CPU đa nhân" tôi đã đề cập đến rằng đa số các ứng dụng hiện nay không khai thác hết khả năng xử lý đồng thời trên nhiều nhân, do đó đánh dấu kiểm vào mục này là một sự thuận lợi đối với hoạt động của client trên các nhân CPU một cách linh hoạt.

Phần Core Network Address được thiết lập để dành cho các client tương lai, hiện tại chúng không được ứng dụng. Sự lập sẵn này cho thấy chúng có khả năng đã được sử dụng trong một số phiên bản thử nghiệm (anpha hoặc beta đóng) để có thể được sử dụng trong một thời gian sắp tới. Tôi nghĩ rằng rất có thể các máy tính trong cùng một mạng sẽ có thể xử lý đồng thời với nhau cho một đơn vị tính toán, và như vậy thì việc chia nhỏ công việc đến từng client lại còn được tiếp tục chia nhỏ nữa cho việc tối ưu thêm cho dự án này.

Mục Power có một lựa chọn "Pause work while battery power is being used" chỉ phù hợp với các máy laptop có sử dụng pin. Nếu như chạy FAH trên Laptop thì mỗi khi mất điện lưới, máy chuyển sang chế độ hoạt động bằng pin thì FAH sẽ tạm dừng làm việc, mục đích của chúng là giúp tiết kiệm pin hơn. Đối với máy tính để bàn (desktop) thì thiết đặt này không có ý nghĩa.

Phần Additional Client Parameters thì tôi không thực sự hiểu cho lắm, nhưng nghĩ rằng chúng có vẻ liên quan đến việc gắn thêm các tham số như kiểu đặt tham số sau các lệnh thực hiện trong DOS thông thường (kiểu như lệnh format thì có tham số /q vậy mà). Nếu bạn tiếp tục nghiên cứu sâu hơn về các client thì có lẽ phần này sẽ không khó hiểu đối với bạn (và có thể sau này tôi cũng thế ^_^)

Phần Machine ID chỉ phù hợp nếu bạn đồng thời chạy nhiều client trên cùng một hệ điều hành. Điều này thì dễ xảy ra bởi vì bạn có thể sử dụng một client thứ nhất đối với CPU, còn một client thứ hai đối với GPU (bộ xử lý của bo mạch đồ hoạ) chẳng hạn. Những con số ID tiếp theo (3, 4, 5...) có lẽ được dùng dự phòng trong tương lai khi mà có thể chạy nhiều hơn các client trong cùng một thời điểm ở trên cùng một hệ điều hành.

Chế độ hoạt động

Khi hoạt động thì FAH sẽ xuất hiện bằng một biểu tượng nhỏ ở khay đồng hồ, khi rê chuột qua biểu tượng này thì chúng sẽ hiển thị trạng thái làm việc đối với các khối tính toán hoặc trạng thái khác (như số wu đã thực hiện, tình trạng đang tải về một wu mới khi mà chúng vừa thực hiện hoàn tất một wu cũ).

Chuột phải vào biểu tượng này sẽ xuất hiện nhiều liên kết hoặc đến các thư mục, tập tin liên quan đến chế độ làm việc của client.

Mục Pause work sẽ cần thiết khi mà bạn cần tạm dừng hoạt động của client để thực hiện một phần mềm nào đó trên máy tính của bạn chiếm nhiều khả năng xử lý CPU (hoặc đơn giản là bạn chơi một game 3D nặng nào đó). Khi này kết quả tính toán sẽ không mất đi do chưa đến thời điểm ghi lại kết quả, nhưng có thể rằng bộ nhớ của máy tính sẽ bị chiếm dụng (hoặc có thể bị đẩy sang tập tin hoán đổi bộ nhớ pagefile.sys).

Mục Pause when done cũng tương tự, nhưng chỉ thực hiện tạm dừng tính toán khi mà đơn vị xử lý hiện tại hoàn tất. Phần này tôi không lý giải được chúng bởi với tôi nó không cần thiết, cũng không thấy có thể ứng dụng chúng theo hoàn cảnh nào.

Ở phần Status có một số liên kết đến các thư mục, tập tin hoặc các trang trên Internet:

  • My Folding sẽ đến một trang web dạng offline chứa một số thông tin về tình trạng hoạt động của client của bạn.
  • Phần Team Statistics liên kết đến trang trạng thái của đội cùng thực hiện FAH với bạn (ví dụ như của tôi là trang về VGT tại: http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=38156 ).
  • Phần User Statistics liên kết đến trang của bạn trong dự án này (kết quả điểm chỉ xác định nếu bạn hoàn tất một wu).
Hình hiển F@H viewer để hiển thị hình ảnh không gian của kết quả tính toán.

Phần Queue Information là một mục chứa một thông tin rất quan trọng đối với các thiết đặt, đó là dòng Deadline date. Dòng này chứa thông tin rằng đơn vị tính toán phải được hoàn thành vào hạn cuối cùng là ngày này mà nếu như hoàn thành sau đó thì có vẻ chúng sẽ không còn ý nghĩa nữa. Tôi cảm thấy điều này hợp lý khi mà phân phát các gói đơn vị tính toán mà không có giới hạn thì sẽ có lúc sẽ tạo ra các lỗ hổng trong phần tính toán bởi sự chậm chạm từ phía các client. Tôi đoán rằng thời gian này có vẻ sẽ dư sức đối với các máy tính hoạt động FAH vào khoảng 8 giờ/ngày đối với các máy tính công sở, sự hạn chế chỉ nhằm tránh việc tải về các đơn vị tính toán rồi không thực hiện mà thôi. Vậy thì điều này quan trọng ở điểm nào? Nếu chúng ta thiết đặt sự làm việc quá chậm sẽ có nguy cơ tạo ra sự tính toán vô ích đối với cả dự án bởi có thể chính đơn vị tính toán đó đã được phân cho một máy client khác ở đâu đó trên thế giới nếu quá với thời hạn từ khi tải xuống này.

Qua các đơn vị tính toán khác nhau thì tôi cũng nhận thấy việc xác định thời gian này là không giống nhau đối với các đơn vị tính toán, có thời hạn khoảng 10 ngày, có cái 15 ngày và có cái đến 20 ngày...Tôi thì không rõ rằng chúng có liên quan đến số điểm để tính hay không nhưng có vẻ như ở trang kết quả các thành viên đội VGT đã có những người tính toán đến nhiều đơn vị nhưng chỉ đạt 0 điểm - có lẽ rằng do lý do quá thời hạn?

Có một điều thú vị đối với mục Display chúng chứa hình ảnh không gian ba chiều mà có lẽ rằng là kết quả của sự tính toán. Kết quả này sẽ hiển thị nhiều lên theo mức % hoàn thành của quá trình thực hiện các đơn vị tính toán. Hình ảnh này khá đẹp mắt (như hình minh hoạ, nhưng chúng xoay tròn) nhưng không phải hình dạng của chúng lúc nào cũng tương tự như vậy - bởi vì còn một loại đơn vị tính toán nào đó mà tôi thấy rằng chúng không như hình này - mà lại là một số "quả cầu" cứ lao qua, lao lại một nhóm các quả cầu khác :).

Tôi thì chưa rõ rằng FAH viewer có tham gia vào quá trình tính toán hay không khi sự hiển thị cũng là sự xử lý của GPU, nếu như chúng không tham gia làm tăng sự xử lý thì hiển thị phần này là một phần không được tối ưu cho lắm, bởi xử lý 3D như vậy cũng là một sự nặng nhọc cho GPU.

Log file là tập tin văn bản (text) chứa khá nhiều thông tin cho quá trình xử lý, thông qua nó bạn cũng có thể sơ bộ tính toán được thời gian hoàn thành của một đơn vị tính toán bởi vì chúng ghi lại thời gian và tỷ lệ % hoàn thành đơn vị tính toán. Thông qua đây bạn cũng có thể biết được phần xử lý hoàn thành đã được tải lên máy chủ của dự án hay chưa (bởi vì máy chủ của dự án thường nặng tải nên đôi khi sau khi hoàn tất tính toán thì không thể kết nối để gửi thành quả lên được, trong trường hợp này bạn có thể mặc kệ cho client lựa chọn thời điểm Internet và máy chủ của dự án có tình trạng truyền tải lên tốt nhất.

Một vài lưu ý

- Với cùng một nickname thì bạn có thể tham gia vào dự án ở nhiều máy tính khác nhau, điểm ghi nhận cho bạn sẽ là tổng số điểm mà các client tính toán được.

- Nếu như bạn có các bo mạch đồ hoạ có hiệu năng cao (các dòng như ATI 2xxx, 3xxx...và có 512 MB RAM bộ nhớ đồ hoạ) thì có thể chạy thử nghiệm với các client có hiệu suất cao (cho kết quả tính toán tốt hơn, số điểm cũng cao hơn). Chi tiết về hoạt động với các client này xin xem thêm tại trang download đã nêu.

- Nếu như bạn thực hiện dự án FAH trên máy tính xách tay thì đôi khi việc thiết lập sự xử lý quá thấp sẽ khiến cho việc điều chỉnh tốc độ CPU diễn ra liên tục, điều này không có lợi cho bo mạch chủ của máy tính xách tay bởi vì chúng phải liên tục điều tiết nguồn điện. Nếu như chạy với tốc độ cao thì dẫn đến nóng máy bởi CPU của máy tính xách tay thường ít khi thiết kế cho sự làm việc quá tải liên tục. Có một thủ thuật để chạy các client trên máy tính xách tay là bạn hãy khoá tốc độ xử lý của CPU lại ở một mức độ trung bình. (Ví dụ như chiếc CPU của tôi có ba mức tốc độ 800/1600/2100 thì tôi đặt chúng chạy ở 1600 MHz.

- Nếu bạn cho phép client hoạt động 100% trên máy tính để bàn (desktop) thì nên theo dõi diễn biến về nhiệt độ CPU và khả năng làm việc của hệ thống trong thời gian khoảng 1 tuần đầu. Nếu có hiện tượng tản nhiệt CPU quá nóng thì nên giảm mức độ hoạt động của CPU bằng các thiết đặt ở bên trên.

- Việc tiến hành thực hiện dự án này trên các client sẽ làm tăng mức độ tiêu hao điện năng lên so với bình thường bởi vì CPU hoạt động với mức độ cao hơn (đối với các CPU thông thường thì chúng tăng khoảng 30-60W so với khi không hoạt động), do đó nếu như e ngại về việc phải trả thêm chi phí cho điện năng thì bạn không nên tham gia. Tôi thì nghĩ rằng để cân bằng mức tiêu hao điện năng này thì đã bớt sử dụng bình nước nóng giảm đi một chút vào mùa đông và tắt điều hoà sớm hơn một chút vào mùa hè, khoản tiết kiệm này sẽ dành cho việc tính toán cho dự án FAH (^_^).

Tham gia diễn đàn với cộng đồng Vietnam Global Team

Vietnam Global Team (viết tắt VGT) ngoài trang chỉ hiển thị kết quả thì cũng có một trang web riêng làm diễn đàn trao đổi các thông tin, thủ thuật, ứng dụng về FAH. VGT là một cộng đồng có thứ hạng cũng đáng nể so với các đội khác trên thế giới bởi thứ hạng đang đứng trong khoảng 40 đến 45 trên tổng số 147.150 đội ở khắp nơi trên thế giới (xem bản đồ phân bố các đội ở phía trên sẽ thấy số lượng rất lớn, tập trung nhiều ở Hoa Kỳ và Châu Âu, tuy VGT là một chấm nhỏ ở Việt Nam nhưng cũng rất đáng tự hào đối với thứ hạng cao như vậy.

Việc lập các diễn đàn trong thời gian vài ba năm trở lại đây do rất đơn giản nên chúng phát triển rất mạnh, điều này gây ra loãng hoạt động các diễn đàn lớn và bão hoà với các diễn đàn nhỏ, diễn đàn của VGT cũng vậy. Tôi chưa từng tham gia diễn đàn này nên nhìn nhận vẻ bên ngoài cảm thấy không sôi động, lý do một phần như trên và cũng bởi các kỹ thuật/thủ thuật FAH không thay đổi liên tục như các chủ đề về công nghệ khác, do đó đương nhiên sẽ sớm hết các nội dung trao đổi. Tuy vậy nếu bạn có các thắc mắc về FAH thì có thể đăng ký là thành viên để tham gia trao đổi, nêu các thắc mắc tại diễn đàn Vietnam Global Team, các thành viên ở đây chắc chắn sẽ trả lời giúp bạn.

Hi vọng rằng thêm một bạn vô tình đọc entry này là thêm một người mong muốn chúng ta sẽ chế ngự được các căn bệnh nan y của hiện tại - cho thế hệ hiện tại và mai sau được tốt đẹp hơn.

Tham khảo

Chứng nhận điểm của tôi, nó thì rất nhỏ so với các thành viên khác của VGT, nhưng nó sẽ tăng theo từng tuần

Mục đích: Tìm hiểu về sự kết xoắn và các đột biến của protein, và các bệnh tật gây ra bởi các biến chứng này. (tiếng Việt) trên website của FAH (thuộc Đại học Stanford).

Folding@Home những câu hỏi thường gặp đối với một số loại bệnh tật đã được nghiên cứu. (tiếng Việt). trên website của FAH

Folding@home, mục từ trên Wikipedia tiếng Anh, (bản tiếng Việt còn sơ sài)

Chú thích

1^. Recent Research Papers, FAH (Trang này cho thấy một số kết quả nghiên cứu đạt được của dự án).

2^. Trang kết quả FAH của tôi.

3^. Folding@home Passkey FAQ trên website của FAH (thuộc Đại học Stanford), phần này giải thích về passkey của phần mềm.

Xem thêm

Huớng dẫn cơ bản về Folding@Home trên diễn đàn Amtech, tuy thời gian viết khá lâu (2004) nhưng chúng là những kiến thức khá cơ bản.

Tr Minh Linh (10/11/2008)

(Entry này bạn được sử dụng với mọi mục đích)

Không có nhận xét nào:

Đăng nhận xét

Hoan nghênh sự góp ý của bạn cho blog!
- Nếu bạn không có các tài khoản để nhắn tin/bình luận bạn có thể chọn trong "Nhận xét với tư cách" với tài khoản "Ẩn danh" (Anonymous).
- Blog còn có các entry/bài viết khác mà bạn có thể xem qua, chúng được liệt kê tại entry Mục lục.

Cám ơn bạn đã đọc blog! Chúc bạn tìm được nhiều bài viết hay và hữu ích cho mình!