Công cụ đo hiệu năng benchmark: Xa hơn FLOPS

Discussion in 'Tin tức - Đồ chơi số' started by Robot Siêu Nhân, Mar 19, 2015.

  1. Robot Siêu Nhân

    Robot Siêu Nhân Moderator

    (Lượt xem: 173)

    (PCWorldVN) Một yếu tố giúp ngành công nghiệp điện toán phát triển là công cụ đo điểm hệ thống - benchmark. Công nghệ thay đổi và công cụ benchmark cũng cần làm mới.


    Trước đây rất đơn giản: nhân xung nhịp bộ xử lý với 4, bạn sẽ có được hiệu năng tính toán theo megaFLOPS (triệu phép tính dấu chấm động mỗi giây), hoặc gigaFLOPS (tỉ dấu chấm động mỗi giây).

    Nhưng nay, ngành công nghệ phải nói đến teraFLOPS (nghìn tỉ) và petaFLOPS (triệu tỉ), thậm chí cao hơn. Điều này nảy ra một câu hỏi quan trọng: người ta đo điểm số cho những hệ thống mạnh khủng khiếp như vậy bằng cách nào?

    Theo Gabe Gravning, giám đốc tiếp thị sản phẩm của AMD, phần lớn bộ xử lý hiện đại đều là những hệ thống trên một chip (SoC), và hoàn toàn có thể tự thân vận hành. Một bộ xử lý x86 thực chất có thể có nhiều nhân xử lý, nhiều bộ xử lý đồ họa đồng thời, bộ nén và giải mã video, bộ xử lý âm thanh và bộ đồng xử lý bảo mật nền ARM.

    Theo Rory McInerney, phó chủ tịch nhóm nền tảng của Intel và giám đốc nhóm phát triển máy chủ, trước đây, chúng ta thiết kế bộ xử lý với nhân đơn trong khoảng thời gian dài và đẩy xung nhịp lên cao nhất có thể, vì xung nhịp đồng nghĩa với tốc độ. Sau đó, bộ xử lý nhân đôi xuất hiện, bộ xử lý đa nhân ra đời, rồi đến nay bộ xử lý có đến 18 nhân, và lúc này điện năng cấp cho bộ xử lý mới là vấn đề. Các công cụ đo điểm số (benchmark) cũng phải đi theo.

    Nhưng cùng lúc đó, công cụ benchmark cũng là yếu tố quan trọng trong quá trình thiết kế hệ thống. Khi chọn lựa một chip mới, người mua sẽ chạy thử nhiều ứng dụng trên chip đó với môi trường làm việc hiện thời để xem tốc độ và tính ổn định thực sự của hệ thống như thế nào. Có thể chip mới sẽ phù hợp với một loại xử lý hoặc giao thức nào đó hoặc ngược lại.

    Theo McInerney, dựa trên các công cụ benchmark, chúng ta sẽ dự đoán được nếu chọn phương án A thì chúng ta sẽ cải thiện được B với X%. Vì vậy, chúng ta phát triển các công cụ benchmark độc lập hoặc tích hợp bên trong chip. Những công cụ này thường gắn chặt với cùng loại CPU cho hết vòng đời sản phẩm của CPU đó. Sau đó, chúng ta sẽ thấy được công cụ benchmark tích hợp và công cụ benchmark độc lập có sự tương quan như thế nào.
    Theo Gravning, không có công cụ benchmark nào hoàn hảo, có thể đo được mọi thứ. Do vậy AMD sử dụng một tập các công cụ benchmark khác nhau, trong đó có cả benchmark tích hợp lẫn benchmark độc lập. Quy trình thử nghiệm này không thay đổi trong nhiều năm qua.

    Xét về bản chất, công cụ benchmark tích hợp là phần mềm bản quyền và các công ty không đưa ra thị trường. Nhưng để tiếp thị thì các công ty cần những công cụ benchmark độc lập từ bên ngoài. Nếu kết quả benchmark độc lập không tốt, cho dù benchmark tích hợp có tốt chăng nữa, thì sản phẩm khi tung ra thị trường sẽ không tốt. Do đó, theo McInerney, các công cụ benchmark độc lập rất quan trọng đối với ngành công nghiệp cũng như đối với Intel nói riêng.

    Nói đến công cụ benchmark độc lập cho máy tính để bàn, phổ biến nhất hiện nay là PCMark và 3DMark, cả hai đều của Futuremark Corp (Phần Lan). PCMark được thiết kế cho nền tảng Windows, còn 3DMark để đo điểm số của game trên nền Windows, Android, iOS và Windows RT.

    Nhưng đối với máy chủ và máy tính hiệu năng cao, có 3 công cụ phổ biến nhất: TPC, SPEC và Linpack.

    [​IMG]
    Chiếc máy tính nhanh nhất thế giới cập nhật hồi tháng 6/2014 là Tianhe -2 (còn có tên khác là MilkyWay-2) đặt tại Trung tâm siêu máy tính quốc gia tại Quảng Châu, Trung Quốc.

    TPC

    Được thành lập vào năm 1988, Transaction Processing Performance Council (TPC) là một nhóm phi lợi nhuận gồm các nhà sản xuất CNTT. Nhóm này đưa ra các công cụ benchmark để đo điểm số cho một hệ thống trong doanh nghiệp, nhất là công cụ đo hệ thống quản lý chứng khoán (TPC-E) hoặc hệ thống nhà xưởng quy mô lớn (TPC-C). Hiện công cụ benchmark mới nhất của TPC để đo các hệ thống Big Data. Điểm số mà TPC có được sẽ nói lên một thông số nào đó chuyên biệt, như số lượng giao dịch mỗi giây (của TPC-E), không phải là tốc độ của hệ thống.

    Theo TPC, các công cụ TPC nhìn chung đều yêu cầu nhiều phần cứng quan trọng, cần một người chuyên theo dõi nguồn điện và rất tốn kém khi thiết lập, hơn nữa mất nhiều tuần liền để chạy. Ngoài ra, cần có một người kiểm tra độc lập xác nhận kết quả. Do vậy, những bài thử nghiệm đo điểm TPC thường chỉ có các nhà sản xuất hệ thống thực hiện.

    Theo Wayne Smith, chủ tịch của TPC, sau khi đăng tải kết quả, thành viên TPC khác có thể chất vấn hay không thừa nhận kết quả trong vòng 60 ngày, lúc đó ban cố vấn kỹ thuật sẽ giải đáp. Thông thường, những tranh luận đều xoay quanh mức giá bởi các công cụ benchmark thường chạy trên máy lẻ trước khi chạy trên hệ thống, và giá đều được công khai. Đã một trường hợp gây xôn xao dư luận: năm 2009, TPC trách phạt Oracle 10.000 USD vì quảng cáo kết quả benchmark mà đối thủ IBM khiếu nại kết quả đó chưa qua giai đoạn kiểm tra độc lập.

    Công cụ benchmark TPC lâu đời nhất đến nay vẫn được dùng là TPC-C để giả lập kho dữ liệu, ra đời hồi năm 2000. Trong hơn 350 kết quả được đăng tải, điểm số rất khác nhau, từ 9.112 giao dịch mỗi phút (dùng máy chủ Pentium đơn nhân năm 2001) cho đến hơn 30 triệu giao dịch/phút (máy chủ Oracle SPARC T3 1.728 nhân vào năm 2010). Những kết quả như vậy cho thấy khả năng tính toán của hệ thống phát triển rất mạnh.

    TPC cũng có một danh sách công cụ benchmark lỗi thời, chỉ có tính tham khảo mà thôi. Có vài trường hợp chỉ qua một đêm, công cụ đã lỗi thời. Ví dụ, thời gian trong hàng chờ (query) trong công cụ TPC-D phải giảm từ tính theo giờ, xuống tính theo giây sau khi có nhiều ngôn ngữ cơ sở dữ liệu đưa ra một hàm tên là "materialized views" để tạo các đối tượng dữ liệu thường nằm lâu trong hàng chờ.

    TPC cũng vừa quyết định không dùng những công cụ benchmark phức tạp, cần nhiều người giám sát trực tiếp để chuyển sang các công cụ benchmark “nhanh”, dựa trên mã thực thi mà nhà sản xuất đơn giản chỉ việc tải về và chạy, nhất là cho big data và cho các ứng dụng ảo hóa. Tuy vậy, quá trình viết và xét duyệt cho một công cụ benchmark vẫn còn lê thê vì cần nhiều thành viên chấp thuận.

    SPEC

    Cũng được thành lập vào năm 1988, Standard Performance Evaluation Corporation (SPEC) là tổ chức phi lợi nhuận, thúc đẩy các công cụ benchmark chuẩn hóa và đăng tải kết quả thử nghiệm, đồng thời nếu có doanh nghiệp nào cần, họ cũng có thể bán mã nguồn cho mục đích thử nghiệm. Hiện thời, SPEC có những công cụ đo điểm cho CPU, hệ thống đồ họa, môi trường Java, mail server, file server, web server, điện năng tiêu tốn, môi trường ảo hóa và các yếu tố khác trong điện toán hiệu năng cao.

    Đây vẫn là công cụ benchmark lâu đời nhất vẫn được sử dụng ngày nay, và công cụ phổ biến nhất trong các sản phẩm của SPEC là SPEC CPU2006, là công cụ đo điểm CPU, được phát hành lần đầu vào năm 2006 (SPEC cũng có những phiên bản trước đó, đầu tiên là vào năm 1992.)

    SPEC CPU2006 thực chất là bộ ứng dụng, thử nghiệm khả năng xử lý số nguyên và dấu chấm động về tốc độ (thời gian hoàn thành các tác vụ đơn lẻ) và băng thông (thời gian hoàn thành đa tác vụ). Điểm số có được tỉ lệ thời gian hoàn thành so với một hệ thống tham chiếu. Trong trường hợp này, hệ thống tham chiếu là Sun Ultra Enterprise 2 1997 chạy bộ xử lý UltraSPARC II 2 296MHz. Theo đặc tả của SPEC, hệ thống tham chiếu phải mất đến 12 ngày mới chạy hết tập ứng dụng benchmark.

    Tại thời điểm viết bài này, điểm số CPU2006 cao nhất (trong số hơn 5.000 điểm số được đăng tải) là 31.400 điểm cho băng thông số nguyên của hệ thống Fujitsu SPARC M10-4S 1.024 nhân, được hoàn tất thử nghiệm hồi tháng 3/2014. Nói cách khác, hệ thống này nhanh hơn hệ thống tham chiếu đến 31.400 lần. Về điểm số "đội bảng", đó là chiếc Lenovo Thinkpad T43 thử nghiệm hồi tháng 12/2007, đạt 11,4 điểm.

    Các kết quả thử nghiệm được nộp lên SPEC và được tổ chức này đánh giá lại trước khi công bố chính thức. Theo giám đốc truyền thông của SPEC, Bob Cramblitt, kết quả thử nghiệm rất chi tiết nên chúng ta có thể nhận diện được hệ thống nào đó có bị lỗi chỗ nào hay không. Thỉnh thoảng một số kết quả không được thông qua, phần lớn là vì không thể có được hết các đề mục mà SPEC yêu cầu.

    Còn theo Steve Realmuto, giám đốc SPEC, bất kỳ ai cũng có thể chạy benchmark cho hệ thống của mình. SPEC có uy tín trong ngành, do hiệp hội các nhà sản xuất cạnh tranh nhau lập ra, và những tiêu chí mà SPEC đánh giá đều là những tiêu chí mà các doanh nghiệp quan tâm nhất. SPEC cũng hướng đến tính đa dạng trong quá trình benchmark. Kể từ năm 2008, SPEC đưa ra tính năng đo tỉ lệ lượng điện năng tiêu tốn với hiệu năng, và gần đây họ đưa ra tiếp một công cụ đo tính hiệu quả của máy chủ. Đến nay, họ đang nghiên cứu để đưa ra công cụ benchmark cho các dịch vụ điện toán đám mây.

    SPEC không hướng nhiều đến máy tính để bàn vì các tải công việc trên máy tính bàn thường là đơn luồng. SPEC tập trung vào benchmark cho máy chủ nhiều hơn và các công cụ SPEC sau này khai thác khả năng xử lý đa nhân trong bộ xử lý máy chủ.

    Linpack

    Công cụ benchmark Linpack chủ yếu vẫn tập trung vào FLOPS, là nền tảng để đánh giá hệ thống trong Top500 máy tính mạnh nhất thế giới, 6 tháng được cập nhật một lần, bắt đầu từ năm 1993. Danh sách này hiện do 3 nhà khoa học máy tính quản lý: Jack Dongarra, giám đốc phòng thí nghiệm điện toán sáng tạo (Innovative Computing Lab) ở đại học Tennessee; Erich Strohmaier, trưởng nhóm các công nghệ tương lai (Future Technologies Group) ở phòng thí nghiệm quốc gia Lawrence Berkeley, Mỹ; và Horst Simon, phó giám đốc phòng thí nghiệm Lawrence Berkeley.

    Chiếc máy tính nhanh nhất thế giới cập nhật hồi tháng 6/2014 là Tianhe - 2 (còn có tên khác là MilkyWay-2) đặt tại Trung tâm siêu máy tính quốc gia tại Quảng Châu, Trung Quốc. Đây là hệ thống chạy Linux, dùng các cụm cluster Intel Xeon, có tổng cộng 3.120.000 nhân xử lý, đạt được 33.862.700 gigaFLOPS (hoặc 33.862,7 teraFLOPS, hoặc gần 34 petaFLOPS).

    Đứng đầu bảng đầu tiên hồi tháng 6/1993 là hệ thống có 1.024 nhân tại phòng thí nghiệm quốc gia Los Alamos, đạt được 59,7 gigaFLOPS. Danh sách này cho chúng ta thấy được tốc độ xử lý máy tính tăng trưởng như thế nào qua 21 năm.

    Linpack có gốc gác từ một thư viện phụ của ngôn ngữ Fortran, để giải quyết các hàm tuyến tính trong nhiều hệ thống khác nhau. Xa hơn nữa, công cụ benchmark này bắt nguồn từ một phụ lục trong cuốn hướng dẫn Linpack Users Guide hồi năm 1979, là cách ước tính số lần thực thi. Đến nay, Linpack có thể tải về ở dạng mã nguồn theo ngôn ngữ Fortran, C và Java. Nó đo số lần mà hệ thống tính toán các hàm tuyến tính (từ các hàm hiệu quả lẫn không hiệu quả, nhằm tối đa hóa số lượng tác vụ cần làm), nhất là phép nhân ma trận.

    Kết quả được nộp cho Dongarra và sau đó, ông đánh giá lại trước khi công bố. Ông giải thích công cụ benchmark Linpack dần dần có nhiều người quan tâm hơn; đến nay, danh sách các siêu máy tính chạy với một phiên bản Linpack được tối ưu cho các bộ xử lý song song, tên là High-Performance Computing Linpack Benchmark (HPL).

    Nhưng Dongarra cũng lưu ý danh sách Top500 có kế hoạch tiến xa hơn HPL, lên một công cụ benchmark mới, dựa trên các dải liên hợp (conjugate gradients), là một phương pháp tổng hợp để giải các hàm tuyến tính cụ thể nào đó. Những hàm này nhấn mạnh hơn vào khả năng truy cập dữ liệu, thay vì tính toán đơn thuần. Do vậy, dựa vào những công cụ benchmark cũ có thể khiến ngành thiết kế chip và hệ thống đi sai hướng. Công cụ benchmark mới sẽ mang tên HPCG, viết tắt của High Performance Conjugate Gradients.

    Theo Dongarra, danh sách Top500 sẽ có công cụ mới khác. Nhưng HPL vẫn còn đó, vì có lẽ HPCG phải vài năm nữa mới đủ trưởng thành và được cộng đồng nhìn nhận.

    [​IMG]
    Jack Dongarra, giám đốc phòng thí nghiệm điện toán sáng tạo (Innovative Computing Lab) ở đại học Tennessee (USA)

    Đề xuất từ IBM

    Trong khi đó, tại IBM, các nhà nghiên cứu đang tiến cử một cách tiếp cận mới cho kiến trúc điện toán nói chung.

    Costas Bekas, trưởng nhóm Nền tảng cho điện toán nhận thức của IBM Research ở Zurich, Đức, là người đoạt giải Gordon Bell của ACM năm 2013, đồng ý với Dongarra rằng máy tính hiệu năng cao ngày nay đang di chuyển từ tập trung xử lý tính toán sang tập trung xử lý dữ liệu. Và điều này sẽ thay đổi mọi thứ.

    Theo Bekas, “chúng ta cần thiết kế máy tính để chúng giải quyết các vấn đề của chúng ta. Nếu chúng ta tiếp tục sử dụng các công cụ benchmark mà chỉ tập trung vào một loại ứng dụng thì đó là khuyết điểm của chúng ta”. Do đó, đội ngũ của Bekas ủng hộ cho cách đo benchmark dải liên hợp, bởi vì dải liên hợp liên quan đến di chuyển dữ liệu trong các ma trận lớn, không đơn thuần là xử lý nhiều tính toán nữa.

    Xa hơn nữa, Bekas cho biết đội ngũ của ông cũng thúc đẩy một thiết kế hệ thống mới, kết hợp cả tính toán không chính xác lẫn tính toán chính xác. Và công cụ benchmark dải liên hợp sẽ tận dụng tốt kiểu thiết kế này.

    Bekas giải thích thêm, về cơ bản, các tính toán kiểu dấu chấm động (như FLOPS) chỉ cần đưa ra vài trường hợp khác nhau. Phần thời gian còn lại, máy tính chạy các tác vụ như sắp xếp hoặc so sánh đơn giản. Trong hai trường hợp sau, tính toán dấu chấm động không có gì liên quan cả.

    Các hệ thống mới của IBM cho thấy kết quả benchmark mang tính thực tế hơn rất nhiều, bởi vì điện năng cần để đạt được một giải pháp nào đó, với kiểu kết hợp giữa xử lý chính xác và không chính xác, giảm gần 300 lần. Nếu giảm tối thiểu kiểu tính toán chính xác thì bộ xử lý cần ít năng lượng hơn nhiều, do vậy hệ thống máy tính sẽ đạt được kết quả rất nhanh và giảm được lượng điện năng tiêu tốn.

    Tận dụng kiến trúc mới này còn đòi hỏi nỗ lực từ phía nhà lập trình ứng dụng. Theo Bekas, một khi các module phần mềm hệ thống nhận biết được phương pháp điện toán mới thì hệ thống chỉ cần 1 lệnh để khởi chạy.

    Nếu đề xuất của Bekas được giới công nghiệp quan tâm thì công cụ benchmark sẽ thúc đẩy ngành thiết kế máy tính và ngược lại, thiết kế máy tính cũng thúc đẩy công cụ benchmark phát triển theo hướng mới. Đó mới là bước đi tiếp theo, tiến bộ hơn so với mẫu điện toán và benchmark cũ, lâu đời.

    Chúng ta chưa thể đưa ra được công thức cụ thể nào, cho rằng đây thực sự là con đường mà công cụ benchmark mới cần phải theo. Rất phức tạp để đánh giá được một cách toàn diện nhất năng lực của một hệ thống về mặt kỹ thuật lẫn mặt hiệu quả thực sự. Một số công ty sử dụng công cụ benchmark để dự đoán đầu tư phần cứng hoặc phần mềm.

    Dù gì đi nữa, các công cụ benchmark là động lực, giúp thị trường điện toán thêm tính cạnh tranh hơn, khi các nhà sản xuất hệ thống phải liên tục cải tiến sản phẩm để không bị rớt hạng.

    PC World VN, 03/2015

    [​IMG]
    Nguồn PC World VN
     
  2. Facebook comment - Công cụ đo hiệu năng benchmark: Xa hơn FLOPS

Share This Page