Ngôn ngữ lập trình mới do MIT tạo ra có thể giúp chương trình chạy nhanh gấp 4 lần

19/10/2019

Việc này đặc biệt có ích khi một chương trình phải xử lý song song các khối dữ liệu khổng lồ mà không làm tốc độ thực thi chậm hơn.

 

Các dữ liệu lớn ngày nay đặt ra các vấn đề khác nhau cho các kỹ thuật quản lý bộ nhớ hiện tại, vốn dựa trên nguyên tắc cục bộ (principle of locality). Nguyên tắc này được diễn giải như sau: nếu một chương trình cụ thể phải truy cập vào dữ liệu tại một vị trí trên bộ nhớ, nó cũng cần cả các khối bộ nhớ xung quanh.

Nhưng khi một chương trình phải xử lý dữ liệu lớn, bao gồm hàng núi dữ liệu nằm phân tán ở nhiều nơi trên thanh ghi của bộ nhớ, nguyên tắc cục bộ này lại trở thành một trở lực về hiệu năng khi nó dẫn đến việc thực thi chương trình trở nên chậm chạp hơn. Để giải quyết vấn đề này, các nhà nghiên cứu tại Phòng thí nghiệm về Khoa học máy tính và Trí tuệ nhân tạo của MIT (CSAIL) đã phát triển một ngôn ngữ lập trình mới, có tên gọi là Milk.

Khi so sánh với các ngôn ngữ lập trình hiện nay khi được sử dụng để xử lý dữ liệu lớn, một chương trình viết bằng Milk chạy nhanh gấp 4 lần. Tại sao nó lại có thể đạt được tốc độ như vậy? Bí mật nằm ở cách các lõi bộ xử lý thu thập và lưu dữ liệu trong bộ nhớ đệm.

Các chip máy tính ngày nay không được tối ưu cho xử lý các dữ liệu phân tán. Do việc lấy dữ liệu từ thanh ghi bộ nhớ chính của con chip rất chậm, nên mỗi nhân của bộ xử lý trong con chip hiện đại đều có một bộ nhớ đệm riêng, một thanh ghi bộ nhớ tốc độ cao, tương đối nhỏ và gắn liền bên trong, để lưu dữ liệu. Thông thường, thay vì lấy về một mục dữ liệu duy nhất từ bộ nhớ chính, mỗi lõi sẽ lấy về cả khối dữ liệu, gồm mục dữ liệu cần thiết và các dữ liệu ở lân cận.

Trong khi đó, Milk tiếp cận theo một cách khác. Nó đơn giản chỉ thêm một vài dòng lệnh (command) vào OpenMP, một phần mở rộng được sử dụng bởi các ngôn ngữ lập trình khác như C và Fortran để việc viết code cho các bộ xử lý đa nhân trở nên dễ dàng hơn. Với Milk, các lập trình viên có thể chèn một vài dòng code bổ sung vào bất kỳ tập lệnh nào của lõi đang tìm kiếm dữ liệu. Sau đó, trình biên dịch của Milk sẽ giải quyết các vấn đề về bộ nhớ theo cách như sau:

Với chương trình viết bằng Milk, khi lõi bộ xử lý phát hiện nó cần một mục dữ liệu nào đó, nó không yêu cầu mục dữ liệu đó (cũng như các mục dữ liệu lân cận) từ bộ nhớ chính. Thay vào đó, nó thêm địa chỉ của mục dữ liệu vào một danh sách địa chỉ, được lưu cục bộ trên lõi bộ xử lý.

Khi tất cả các danh sách đã có đủ địa chỉ của những mục dữ liệu, các lõi bộ xử lý sẽ gộp các danh sách đó lại, nhóm các địa chỉ ở gần nhau lại với nhau, và tái phân phối chúng về các lõi của bộ xử lý. Bằng cách này, mỗi lõi sẽ chỉ yêu cầu các mục dữ liệu mà nó cần và việc lấy dữ liệu về cũng sẽ diễn ra hiệu quả hơn.

Dưới đây là nhận xét của Matei Zaharia, trợ lý giáo sư tại Đại học Stanford, khi nói về Milk:

"Milk giúp giải quyết thiếu sót này bằng cách tối ưu hóa việc truy cập bộ nhớ trong cấu trúc lập trình thông thường. Công trình này kết hợp các kiến thức chi tiết về thiết kế của bộ điều khiển bộ nhớ với kiến thức về trình biên dịch, để làm tốt việc tối ưu trên các phần cứng hiện tại."

Cuối tuần này, Milk sẽ được giới thiệu tại Hội nghị Quốc tế về các Kiến trúc song song và Kỹ thuật biên dịch (International Conference on Parallel Architectures and Compilation Techniques) tại Israel từ ngày 11 đến ngày 15 tháng Chín năm 2016.

GenK - Tham khảo MIT.edu

 

Tin liên quan

09/01/2021

[Bạn có biết?] Những ứng dụng tuyệt vời của công nghệ điện toán đám mây trong doanh nghiệp

Chuyên mục "Bạn có biết?" tháng 01/2021 của Viettel IDC lần này sẽ cung cấp cho các bạn những kiến thức cơ bản về "Những ứng dụng tuyệt vời của công nghệ điện toán đám mây trong doanh nghiệp", cùng đón đọc nhé!

07/01/2021

Kỹ sư IT - Nghề HOT nhất năm 2020 trong bối cảnh doanh nghiệp thực hiện chuyển đổi số

Năm 2020 với nhiều biến động đã qua đi, chúng ta hãy cùng nhìn lại xem thị trường nhân sự IT có những biến chuyển gì nhé. Nhìn chung, doanh số, tốc độ tăng trưởng, cũng như nhu cầu tuyển dụng của các công ty trong ngành IT có dấu hiệu hồi phục và tăng trưởng trở lại sau đại dịch Covid-19.

05/01/2021

Báo cáo về thị trường Điện toán đám mây tại Việt Nam năm 2020

Thị trường Điện toán đám mây năm 2020 đã được những chuyên gia trong ngành dự đoán trước về sự bùng nổ phát triển, đặc biệt là khi đại dịch Covid-19 diễn ra từ đầu năm đến nay khiến nhu cầu về công nghệ của doanh nghiệp trở nên cấp thiết hơn bao giờ hết. Chính vì điều này, thị trường Điện toán đám mây đã tăng trưởng nhanh chóng và đạt được những thành công nhất định, không chỉ trên thế giới mà cả ở Việt Nam trong năm nay.

25/12/2020

Gartner dự báo tổng chi tiêu cho Public Cloud trên toàn thế giới sẽ tăng 18% vào năm 2021

Chi tiêu của doanh nghiệp trên toàn thế giới cho các dịch vụ đám mây công cộng được dự báo sẽ tăng 18,4% vào năm 2021 lên tổng số 304,9 tỷ USD, tăng từ 257,5 tỷ USD vào năm 2020, theo Gartner.

22/12/2020

[Bạn có biết?] So sánh các loại hình Hosting và máy chủ thông dụng nhất hiện nay

Chuyên mục "Bạn có biết?" tháng 12/2020 của Viettel IDC lần này sẽ cung cấp cho các bạn những kiến thức cơ bản về việc "So sánh các loại hình Hosting và máy chủ thông dụng nhất hiện nay", cùng đón đọc nhé!

17/12/2020

Akamai và Viettel IDC phát hành sách trắng về ngành công nghiệp truyền thông Việt Nam 2020

Sách trắng về ngành công nghiệp truyền thông “Việt Nam: Giữ chân khách hàng để tối đa doanh thu” (Vietnam: Customer retention for monetization) tổng kết sự thay đổi thói quen người dùng, xu hướng chuyển đổi mô hình cung cấp dịch vụ và thách thức với các nhà cung cấp dịch vụ truyền thông tại Việt Nam.

09/12/2020

​Bật mí một số điều bạn cần biết về dịch vụ Container as a Service

​Container as a Service là một giải pháp chuyển giao ứng dụng, dịch vụ phần mềm đáng tin cậy giữa các môi trường hệ điều hành khác nhau. Vậy cụ thể Container as a Service là gì và tại sao nó lại quan trọng? Hãy cùng Viettel IDC tìm hiểu kỹ hơn trong bài viết nay nhé.

18/11/2020

Viettel IDC bắt đầu thu phí một số yêu cầu hỗ trợ sau bán

Từ 01/01/2021, Viettel IDC bắt đầu triển khai tính phí đối với một số yêu cầu hỗ trợ sau bán ngoài danh mục các nghiệp vụ miễn phí, áp dụng với tất cả các dịch vụ TTDL và điện toán đám mây của Viettel IDC, nhằm nâng cao chất lượng hỗ trợ tốt nhất và đảm bảo đáp ứng tất cả các yêu cầu phát sinh trong quá trình sử dụng dịch vụ của khách hàng.

12/11/2020

Chiến lược quản lý rủi ro trên Cloud bằng phương pháp quản lý tập trung

Đám mây công cộng (Public Cloud) được thiết kế với tính bảo mật cao, khả năng mở rộng và khả năng thích ứng tốt. Kết quả là sự gia tăng ngày càng mạnh mẽ của các dịch vụ đám mây công cộng và API được cung ứng bởi các nhà cung cấp nền tảng đám mây. Điều này đã giúp các tổ chức tăng tốc độ đổi mới trong xu hướng chuyển đổi số.

11/11/2020

[Bạn có biết?] Các mô hình điện toán đám mây cơ bản và trường hợp sử dụng

Chuyên mục "Bạn có biết?" tháng 11/2020 của Viettel IDC lần này sẽ cung cấp cho các bạn những kiến thức cơ bản về "Các mô hình điện toán đám mây cơ bản và trường hợp sử dụng", cùng đón đọc nhé!