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

08/09/2020

[Phân tích chuyên sâu] 4 câu hỏi doanh nghiệp cần có lời giải khi di chuyển lên Cloud?

Không có cách nào thoát khỏi xu hướng di chuyển lên Cloud! Để việc sản xuất kinh doanh của doanh nghiệp phát triển bền vững, cần có một môi trường đám mây lai, đa đám mây phù hợp. Những năm gần đây, các công ty đều đã nhận thức được những lợi ích vượt trội của đám mây công cộng (Public Cloud). Và trên thực tế, việc sử dụng nhiều hơn một dịch vụ Public Cloud duy nhất sẽ mang lại hiệu quả cao và tối ưu hơn.

25/08/2020

Talk Show: “Thách thức trong việc triển khai Microservices tại Việt Nam”

Talk show số 2 – Tháng 8, các chuyên gia hàng đầu về công nghệ của Viettel IDC sẽ cùng các bạn thảo luận về các chủ đề “hot” đó và giải đáp hàng loạt câu hỏi của các bạn dành cho chúng tôi như: việc triển khai, ứng dụng Microservices, Kubernetes, Cloud computing, bảo mật, dự phòng, chuyển đổi ứng dụng,…

28/07/2020

Talk Show: “Làm chủ MicroServices bằng điện toán đám mây”

Loại hình dịch vụ nào sẽ phù hợp với nền tảng hạ tầng siêu nhỏ? Talkshow: “Làm chủ MicroServices bằng điện toán đám mây” sẽ giúp bạn giải đáp.

14/07/2020

Khởi động cuộc thi tìm kiếm giải pháp chuyển đổi số Việt Nam Viet Solutions

Viet Solutions 2020 là cuộc thi tìm kiếm giải pháp chuyển đổi số quốc gia dành cho các cá nhân, doanh nghiệp trên toàn cầu do Bộ TT&TT và Tập đoàn Công nghiệp - Viễn thông Quân Đội phối hợp tổ chức.

16/06/2020

Phân tích chuyên sâu về xu hướng thị trường Trung tâm dữ liệu ở Đông Nam Á

Thị trường trung tâm dữ liệu ở Đông Nam Á đang ngày tăng trưởng mạnh với các khoản đầu tư lớn từ các nhà cung cấp đám mây như Google, AWS và Alibaba. Nhu cầu về các dịch vụ dựa trên đám mây sẽ chính là động lực cho thị trường trong vài năm tới.​

06/05/2020

Có gì bên trong Trung tâm dữ liệu Bình Dương của Viettel IDC?

Data Center Bình Dương là 1 trong 5 Trung tâm dữ liệu lớn của Viettel với diện tích phòng máy là 10 000 m2, cung cấp 1600 rack, phục vụ cho hơn 2000 khách hàng trong và ngoài nước.

07/03/2020

Xu hướng tương lai của nghề IT và công nghệ điện toán đám mây

Điện toán mây đã và đang hiện diện ở rất nhiều nơi, từ công việc cho đến cuộc sống. Các "đám mây" đã thay đổi đáng kể cách con người sử dụng máy tính và nó cũng tạo ra nhiều cơ hội và thách thức cho nghề IT trong tương lai.

04/03/2020

VMware bổ nhiệm Giám đốc phát triển đối tác mới, định hướng chuyển đổi số tại Việt Nam

Theo VMware, việc bổ nhiệm ông Venkatesh Murali vào vị trí Giám đốc Phát triển đối tác sẽ thúc đẩy hơn nữa hành trình chuyển đổi số và lên đám mây của các khách hàng tại những thị trường năng động, tăng trưởng nhanh ở châu Á, trong đó có Việt Nam.

13/02/2020

Viettel IDC thông báo mời thầu Quý I/2020

Viettel IDC thông báo mời thầu gói “Cung cấp dịch vụ thuê máy chủ phục vụ khách hàng Tổng Công ty giải pháp Doanh nghiệp Viettel Quý I/2020” theo hình thức Đấu thầu rộng rãi, phương thức một giai đoạn một túi hồ sơ, sử dụng Chi phí sản xuất kinh doanh của đơn vị.

05/02/2020

Làm việc online – Xu hướng mới của các doanh nghiệp công nghệ

Làm việc online, văn phòng online đang là xu hướng được nhiều doanh nghiệp áp dụng, nhất là các doanh nghiệp công nghệ. Bởi vì, với cách làm việc này sẽ giúp doanh nghiệp giảm thiểu chi phí thuê văn phòng, điện nước,…