Các công nghệ ứng dụng trên tàn tích của cơn sốt blockchain hay lợi ích thiết thực của việc phân phối tài nguyên

Trong những năm gần đây, các nguồn cấp tin tức tràn ngập các thông báo về một loại mạng điện toán phân tán mới đột ngột xuất hiện, giải quyết (hay đúng hơn là cố gắng giải quyết) nhiều loại vấn đề - làm cho một thành phố trở nên thông minh, cứu thế giới khỏi vấn đề bản quyền. người vi phạm hoặc ngược lại, bí mật chuyển giao thông tin, tài nguyên, trốn thoát khỏi sự kiểm soát của nhà nước ở khu vực này hay khu vực khác. Bất kể lĩnh vực nào, chúng đều có một số đặc điểm chung do thực tế là động lực cho sự phát triển của chúng là các thuật toán và kỹ thuật đã ra mắt công chúng trong thời kỳ bùng nổ gần đây về tiền điện tử và các công nghệ liên quan. Có lẽ mọi bài viết thứ ba về các tài nguyên chuyên biệt vào thời điểm đó đều có từ “blockchain” trong tiêu đề - thảo luận về các giải pháp phần mềm mới và các mô hình kinh tế đã trở thành xu hướng thống trị trong một thời gian, trong bối cảnh các lĩnh vực ứng dụng khác của hệ thống máy tính phân tán đang phát triển. xuống nền.

Đồng thời, những người có tầm nhìn xa và các chuyên gia đã nhìn thấy bản chất chính của hiện tượng: điện toán phân tán quy mô lớn, gắn liền với việc xây dựng mạng lưới từ một số lượng lớn những người tham gia khác nhau và không đồng nhất, đã đạt đến một cấp độ phát triển mới. Chỉ cần loại bỏ các chủ đề cường điệu ra khỏi đầu và nhìn chủ đề từ phía bên kia là đủ: tất cả các mạng này, được tập hợp từ các nhóm khổng lồ, bao gồm hàng nghìn người tham gia không đồng nhất bị cô lập, đã không tự xuất hiện. Những người đam mê phong trào tiền điện tử có thể giải quyết các vấn đề phức tạp về đồng bộ hóa dữ liệu và phân phối tài nguyên và nhiệm vụ theo một cách mới, giúp có thể tập hợp một khối thiết bị tương tự và tạo ra một hệ sinh thái mới được thiết kế để giải quyết một vấn đề tập trung hẹp.

Tất nhiên, điều này đã không xảy ra với các nhóm và cộng đồng tham gia vào việc phát triển điện toán phân tán miễn phí và các dự án mới sẽ không còn lâu nữa.
Tuy nhiên, bất chấp sự gia tăng đáng kể về khối lượng thông tin có sẵn về sự phát triển trong lĩnh vực xây dựng mạng và làm việc với thiết bị, những người tạo ra các hệ thống đầy hứa hẹn sẽ phải giải quyết các vấn đề nghiêm trọng.

Vấn đề đầu tiên, dù nghe có vẻ kỳ lạ đến đâu, đó là vấn đề chọn hướng đi.

Hướng đi có thể đúng hoặc có thể dẫn đến ngõ cụt - không có lối thoát khỏi điều này; nguồn cung cấp thấu thị tập trung cho cộng đồng CNTT vẫn còn muộn. Nhưng phải lựa chọn để không rơi vào cái bẫy truyền thống là nhóm chiếm lĩnh một khu vực quá rộng và cố gắng tạo ra một dự án điện toán phân tán chung không chuyên biệt khác ngay từ đầu. Có vẻ như phạm vi công việc không quá đáng sợ, phần lớn chúng ta chỉ cần áp dụng các phát triển hiện có: kết hợp các nút vào mạng, điều chỉnh các thuật toán để xác định cấu trúc liên kết, trao đổi dữ liệu và giám sát tính nhất quán của chúng, giới thiệu các phương pháp xếp hạng các nút và tìm kiếm. sự đồng thuận và tất nhiên là chỉ cần tạo ngôn ngữ truy vấn của riêng bạn cũng như toàn bộ môi trường ngôn ngữ và máy tính. Ý tưởng về một cơ chế phổ quát rất hấp dẫn và liên tục xuất hiện ở khu vực này hay khu vực khác, nhưng kết quả cuối cùng vẫn là một trong ba điều: giải pháp được tạo ra thực sự là một nguyên mẫu giới hạn với một loạt các cơ chế bị treo “ ToDos” trong tình trạng tồn đọng, hoặc nó trở thành một con quái vật không thể sử dụng được, sẵn sàng lôi đi bất cứ ai chạm vào “đầm lầy Turing” hôi hám, hoặc đơn giản là chết một cách an toàn trước thực tế là thiên nga, tôm càng và cá pike đang kéo dự án theo một hướng khó hiểu , chỉ đơn giản là làm bản thân căng thẳng quá mức.

Chúng ta đừng lặp lại những sai lầm ngu ngốc và hãy chọn hướng đi có phạm vi nhiệm vụ rõ ràng và rất phù hợp với mô hình điện toán phân tán. Bạn có thể hiểu những người cố gắng làm mọi việc cùng một lúc - tất nhiên, có rất nhiều lựa chọn. Và rất nhiều thứ trông cực kỳ thú vị cả từ quan điểm R&D và phát triển cũng như từ quan điểm kinh tế học. Sử dụng mạng phân tán, bạn có thể:

  • Huấn luyện mạng lưới thần kinh
  • Xử lý luồng tín hiệu
  • Tính toán cấu trúc protein
  • Hiển thị cảnh 3D
  • Mô phỏng thủy động lực học
  • Thử nghiệm chiến lược giao dịch trên sàn giao dịch chứng khoán

Để không bị cuốn theo việc biên soạn một danh sách những điều thú vị được song song hóa tốt, chúng tôi sẽ chọn hiển thị phân tán làm chủ đề tiếp theo.

Tất nhiên, bản thân việc hiển thị phân tán không có gì mới. Các bộ công cụ kết xuất hiện tại từ lâu đã hỗ trợ phân phối tải trên các máy khác nhau; nếu không có điều này, sống ở thế kỷ 21 sẽ khá buồn. Tuy nhiên, bạn không nên nghĩ rằng chủ đề đã được đề cập rộng rãi và không có gì để làm ở đó - chúng tôi sẽ xem xét một vấn đề cấp bách riêng biệt: tạo một công cụ để tạo mạng kết xuất.

Mạng kết xuất của chúng tôi là sự kết hợp của các nút cần thực hiện tác vụ kết xuất với các nút có tài nguyên máy tính miễn phí để xử lý kết xuất. Chủ sở hữu tài nguyên sẽ kết nối các trạm của họ với mạng kết xuất để nhận và thực hiện các công việc kết xuất bằng cách sử dụng một trong các công cụ kết xuất được hỗ trợ của mạng. Trong trường hợp này, các nhà cung cấp tác vụ sẽ làm việc với mạng như thể nó là một đám mây, phân phối tài nguyên một cách độc lập, giám sát tính chính xác của việc thực thi, quản lý rủi ro và các vấn đề khác.

Do đó, chúng tôi sẽ xem xét việc tạo một khung hỗ trợ tích hợp với một tập hợp các công cụ kết xuất phổ biến và chứa các thành phần cung cấp công cụ để tổ chức mạng lưới các nút không đồng nhất và quản lý luồng tác vụ.

Mô hình kinh tế về sự tồn tại của mạng như vậy không có tầm quan trọng cơ bản, vì vậy chúng tôi sẽ lấy sơ đồ ban đầu là sơ đồ tương tự như sơ đồ được sử dụng trong tính toán trong mạng tiền điện tử - người tiêu dùng tài nguyên sẽ gửi mã thông báo cho nhà cung cấp thực hiện công việc kết xuất. Sẽ thú vị hơn nhiều khi hiểu những thuộc tính mà một khung nên có, mà chúng ta sẽ xem xét kịch bản chính về sự tương tác giữa những người tham gia mạng.

Có ba mặt tương tác trong mạng: nhà cung cấp tài nguyên, nhà cung cấp tác vụ và nhà điều hành mạng (còn gọi là trung tâm điều khiển, mạng, v.v. trong văn bản).

Nhà điều hành mạng cung cấp cho nhà cung cấp tài nguyên một ứng dụng khách hoặc hình ảnh hệ điều hành với một bộ phần mềm đã triển khai mà anh ta sẽ cài đặt trên máy có tài nguyên mà anh ta muốn cung cấp và một tài khoản cá nhân có thể truy cập được qua giao diện web, cho phép anh ta thiết lập các tham số truy cập vào tài nguyên và quản lý từ xa bối cảnh máy chủ của mình: kiểm soát các tham số phần cứng, thực hiện cấu hình từ xa, khởi động lại.

Khi một nút mới được kết nối, hệ thống quản lý mạng sẽ phân tích thiết bị và các tham số truy cập được chỉ định, xếp hạng nó, chỉ định một xếp hạng nhất định và đặt nó vào thanh ghi tài nguyên. Trong tương lai, để quản lý rủi ro, các thông số hoạt động của nút sẽ được phân tích và xếp hạng của nút sẽ được điều chỉnh để đảm bảo sự ổn định của mạng. Sẽ không ai hài lòng nếu cảnh của họ được gửi đi render trên những chiếc card mạnh mẽ thường xuyên bị treo do quá nóng?

Người dùng cần kết xuất cảnh có thể thực hiện theo hai cách: tải cảnh lên kho lưu trữ mạng thông qua giao diện web hoặc sử dụng plugin để kết nối gói mô hình hóa hoặc trình kết xuất đã cài đặt của họ với mạng. Trong trường hợp này, một hợp đồng thông minh được bắt đầu giữa người dùng và mạng, điều kiện tiêu chuẩn để hoàn thành hợp đồng này là mạng tạo ra kết quả tính toán cảnh. Người dùng có thể theo dõi quá trình hoàn thành một nhiệm vụ và quản lý các thông số của nó thông qua giao diện web của tài khoản cá nhân của mình.

Tác vụ được gửi đến máy chủ, nơi phân tích khối lượng cảnh và số lượng tài nguyên mà người khởi tạo tác vụ yêu cầu, sau đó tổng khối lượng được phân tách thành các phần thích ứng để tính toán về số lượng và loại tài nguyên được mạng phân bổ . Ý tưởng chung là việc trực quan hóa có thể được chia thành nhiều nhiệm vụ nhỏ. Các công cụ tận dụng lợi thế này bằng cách phân phối các nhiệm vụ này giữa nhiều nhà cung cấp tài nguyên. Cách đơn giản nhất là hiển thị các phần nhỏ của cảnh được gọi là phân đoạn. Khi mỗi phân đoạn đã sẵn sàng, nhiệm vụ cục bộ được coi là đã hoàn thành và tài nguyên sẽ chuyển sang nhiệm vụ nổi bật tiếp theo.

Do đó, không có sự khác biệt nào đối với trình kết xuất cho dù các phép tính được thực hiện trên một máy hay trên một mạng lưới nhiều trạm tính toán riêng lẻ. Kết xuất phân tán chỉ đơn giản là thêm nhiều lõi hơn vào nhóm tài nguyên được sử dụng cho một tác vụ. Thông qua mạng, nó nhận tất cả dữ liệu cần thiết để hiển thị một phân đoạn, tính toán nó, gửi lại phân đoạn đó và chuyển sang nhiệm vụ tiếp theo. Trước khi vào nhóm mạng chung, mỗi phân đoạn sẽ nhận được một tập hợp siêu thông tin cho phép các nút thực thi chọn các tác vụ điện toán phù hợp nhất cho chúng.

Các vấn đề về phân đoạn và phân phối tính toán phải được giải quyết không chỉ từ quan điểm tối ưu hóa thời gian thực hiện mà còn từ quan điểm sử dụng tối ưu tài nguyên và tiết kiệm năng lượng, vì hiệu quả kinh tế của mạng phụ thuộc vào điều này. . Nếu giải pháp không thành công, tốt hơn hết bạn nên cài đặt một công cụ khai thác trên nút hoặc tắt nó đi để không gây tiếng ồn và không lãng phí điện.

Tuy nhiên, hãy quay lại quá trình này. Khi nhận được một nhiệm vụ, một hợp đồng thông minh cũng được hình thành giữa nhóm và nút, hợp đồng này sẽ được thực thi khi kết quả nhiệm vụ được tính toán chính xác. Dựa trên kết quả thực hiện hợp đồng, nút có thể nhận được phần thưởng dưới hình thức này hay hình thức khác.

Trung tâm điều khiển kiểm soát quá trình thực hiện nhiệm vụ, thu thập kết quả tính toán, gửi kết quả tính toán sai để xử lý lại và xếp hàng đợi, theo dõi thời hạn hoàn thành nhiệm vụ theo tiêu chuẩn (để không xảy ra trường hợp phân đoạn cuối cùng không được đảm nhận bởi bất kỳ nút nào).

Kết quả tính toán trải qua giai đoạn tổng hợp, sau đó người dùng nhận được kết quả hiển thị và mạng có thể nhận được phần thưởng.

Do đó, thành phần chức năng của khung cảnh quan được thiết kế để xây dựng các hệ thống kết xuất phân tán xuất hiện:

  1. Tài khoản người dùng cá nhân có quyền truy cập web
  2. Bộ phần mềm để cài đặt trên các nút
  3. Bằng hệ thống điều khiển:
    • Hệ thống con kiểm soát truy cập
    • Hệ thống con phân rã tác vụ kết xuất
    • Hệ thống con phân phối nhiệm vụ
    • Hệ thống con tổng hợp
    • Hệ thống con quản lý cấu trúc liên kết mạng và bối cảnh máy chủ
    • Hệ thống con ghi nhật ký và kiểm tra
    • Hệ thống con chuyên gia học tập
    • Rest API hoặc giao diện khác dành cho nhà phát triển bên ngoài

Bạn nghĩ sao? Chủ đề nêu ra những câu hỏi gì và bạn quan tâm đến câu trả lời nào?

Nguồn: www.habr.com

Thêm một lời nhận xét