Ảnh minh họa.

Hầu hết phần mềm hiện nay được lập trình cho chip đơn lõi và sẽ cần phải được viết lại hoặc cập nhật để tận dụng sức mạnh mà vi xử lý nhiều nhân đem lại.

Việc bổ sung thêm lõi xử lý được coi như một phương thức cơ bản của việc nâng cao hiệu suất hoạt động chip máy chủ và PC, song những ích lợi to lớn của nó sẽ hầu như không tồn tại nếu ngành công nghiệp điện toán không thể vượt qua được những thách thức về phần cứng và về lập trình.

Theo ý kiến của các đại biểu tham dự Triển lãm đa lõi tại Santa Clara, California (Mỹ) tuần qua, đa phần ứng dụng hiện nay thường chạy nhanh hơn trên các CPU với nhiều nhất là 4 lõi, tuy nhiên khi số lõi cao hơn mức đó thì hiệu suất chững lại và thậm chí suy giảm đồng thời với việc tăng thêm lõi. Một báo cáo mới đây của hãng nghiên cứu Gartner cũng đã nhấn mạnh điều này.

Các nhà sản xuất chip và máy tính đã bắt đầu những nỗ lực để định hướng giới phát triển phần mềm, cung cấp cho họ những công cụ tốt hơn trong việc lập trình đa lõi. Intel và Microsoft cho biết đã đầu tư 20 triệu USD để mở 2 trung tâm nghiên cứu về vấn đề này. "Sự thiếu hụt công cụ lập trình đa lõi dành cho các nhà phát triển phần mềm phổ thông có lẽ là thách thức lớn nhất mà ngành CNTT đối mặt hiện nay", nhà phân tích Linley Gwennap, Chủ tịch hãng The Linley Group, bình luận.

Viết ứng dụng theo cách cho phép các phần khác nhau của một tác vụ (chẳng hạn như giải một phép toán hay xử lý một hình ảnh) được phân chia và thực hiện độc lập đồng thời trên các lõi khác nhau của chip không phải là điều mới mẻ. Nhưng mô hình này (thường gọi là điện toán song song) đến nay vẫn chỉ được áp dụng giới hạn ở những môi trường điện toán cao cấp, chuyên ngành.

Những năm gần đây, hai công ty sản xuất chip hàng đầu thế giới là Intel và AMD đã liên tục bổ sung thêm lõi như một phương thức tiết kiệm điện năng và tăng hiệu suất hoạt động của bộ vi xử lý. Đây là một thay đổi đáng ghi nhận so với cách thức truyền thống của hai hãng này là tăng xung nhịp đồng hồ chip. Intel đang xây dựng mô hình 8 lõi vào trong các sản phẩm Nehalem-EX của họ, trong khi AMD thiết kế mẫu chip 12 lõi cho máy chủ. Cả hai đều tăng thêm các tính năng xử lý đa luồng để cho phép mỗi lõi trong chip hoạt động độc lập với nhiều luồng dữ liệu cùng lúc.

Điều đó có nghĩa là các ứng dụng phổ thông hiện nay sẽ phải được lập trình lại theo một cách khác để tận dụng sự gia tăng về số lõi. Công việc này khá phức tạp và sẽ tạo ra nhiều dạng lỗi phần mềm mới. Một trong những dạng lỗi phổ biến nhất là: kết quả cho ra của máy tính phụ thuộc vào những phần khác nhau của một tác vụ được hoàn tất theo trình tự nhất định, nếu các phần của tác vụ đó mà không được hoàn tất đúng theo trình tự thì lỗi sẽ phát sinh.

Hiện nay đã có một số ít công cụ lập trình phần mềm điện toán song song, như Parallel Studio của Intel dành cho C and C++, hoặc công cụ của một số hãng khác như Codeplay, Polycore Software và Clik Arts. Ngoài ra còn có một mô hình lập trình song song khá mới, dựa trên ngôn ngữ C, gọi là OpenCL, do The Khronos Group phát triển và được hậu thuẫn bởi Apple, Intel, AMD, Nvidia...

Trong khi thiếu công cụ lập trình, một số hãng phần mềm đã tìm ra cách xử lý song song cho những tác vụ đơn giản, chẳng hạn như xử lý hình ảnh và video. "Nếu xử lý đồ họa hay video, bạn có thể chọn các nhóm pixel khác nhau và đưa chúng tới những lõi khác nhau để xử lý. Đó chính là điện toán song song", chuyên gia Linley Gwennap nói. "Tuy nhiên, đối với những công việc phức tạp hơn thì rất khó tìm được một giải pháp thống nhất cho việc xác định một chuỗi hoạt động song song và rồi phân chia chúng về các lõi khác nhau".

Trong khi lập trình còn chưa tìm ra những hướng khả thi để giải quyết thách thức, vấn đề thay đổi phần cứng cũng là một áp lực đối với điện toán đa lõi vì khi bổ sung thêm nhiều lõi trên chip, băng thông bộ nhớ cũng phải tăng theo để hỗ trợ chúng. Việc chia sẻ chung một bộ nhớ đệm (memory cache) hoặc kênh dẫn dữ liệu (data bus) duy nhất giữa các lõi có thể sẽ gây ra tình trạng nghẽn cổ chai, điều đó đồng nghĩa với việc tất cả những lõi bổ sung thêm sẽ hầu như trở nên vô dụng. "Khi hệ thống có tới 6 hoặc 8 lõi, chúng sẽ mất toàn bộ thời gian để liên lạc với nhau và không còn xúc tiến xử lý tác vụ nào cả", Shay Gal-on, Giám đốc phần mềm của tổ chức EEMBC, phân tích. "Chìa khóa giải quyết vấn đề nằm trong tay các nhà phát triển hệ thống nếu họ san bằng được khoảng cách giữa phần cứng và phần mềm, để tạo ra những chương trình điện toán song song tốt hơn. Nhiều lập trình viên hiện nay đã không thực sự bắt nhịp với tốc độ phát triển về thiết kế phần cứng".

(Theo Vnexpress/InfoWorld)



Bình luận

  • TTCN (0)