Khó khăn? Không có
Chỉ cần khởi chạy nhiều phiên bản Pharo và yêu cầu chúng giao tiếp thông qua ổ cắm hoặc lưu dữ liệu cuối cùng của chúng vào một tệp chung. Hệ điều hành của bạn sẽ quản lý từng trường hợp và gửi nó để thực thi trong một lõi khác. OSProcess mô-đun cung cấp chức năng như vậy và đã được triển khai thành công như Hydra và RoarVM, vấn đề là không ai sử dụng chúng.
Thực ra điều khó khăn nhất của tính song song là làm cho mọi người sử dụng nó. Với các ứng dụng phần cứng ngày nay hiếm khi đạt tới 100% của một lõi đơn. Tôi đã hầu như không làm Pharo đi trên 10%.
Cũng giống như nhiều ngôn ngữ lập trình động lập trình Smalltalk là ngôn ngữ hiệu suất của nhà phát triển chứ không phải ngôn ngữ hiệu suất của ứng dụng.
Nếu bạn thực sự có vấn đề xử lý nặng như vậy, bạn nên sử dụng các ngôn ngữ như C và C++ là ngôn ngữ định hướng hiệu suất ứng dụng rất.Không chỉ theo cách của nó khó khăn hơn để sử dụng những ngôn ngữ đó nhưng ngay cả song song là rất khó để làm ngay cả với các thư viện bên phải. Phần cứng là thiết kế rất kỳ lạ khôn ngoan và có như một tấn gotchas bạn phải nhận thức được.
Và đây là lý do tại sao song song phù hợp với những ngôn ngữ lập trình đó tốt hơn. Tất nhiên bạn có thể làm cho các thư viện trong C/C++ và có Pharo hoặc smalltalks khác sử dụng chúng. Python thực hiện điều này. Python và Pharo khá giống nhau ở chỗ cả hai đều sử dụng GIL và có chuỗi màu xanh lá cây. Gotcha là bạn sẽ phải tham gia các chủ đề của bạn trở lại chủ đề chính để máy ảo có thể truy cập trực tiếp vào nó nhưng có những cách xung quanh như tôi đã nói, giao tiếp socket, đường ống, các tệp được ánh xạ bộ nhớ chia sẻ và nhiều hơn nữa.
Thư viện song song của Python đều dựa trên C/C++.
Chính song song là một chủ đề rất khó, ngay cả khi bạn có song song có thể là mã của bạn sẽ chậm như chạy trên một sợi đơn và lõi đơn. Nhưng đó là một vấn đề chung với hiệu suất ứng dụng, thời điểm bạn muốn sữa ra càng nhiều sức mạnh như bạn có thể bạn phải biết làm thế nào phần cứng hoạt động.
Bản thân phần cứng ngày nay là siêu phức tạp. Ngôn ngữ là ít quan tâm nhất của bạn.
Vì vậy, hoàn toàn có thể trong Smalltalk nhưng thẳng thắn không có nhiều người quan tâm đến nó. Tôi đã thấy các câu hỏi về tính song song trong danh sách gửi thư Pharo mà tôi thường xuyên 2 năm qua, có thể một hoặc hai lần. Và ngay cả đối với đồng thời nó rất hiếm hoi cho một người nào đó để đặt một câu hỏi về nó.
Có một khóa học "gián đoạn" ở một nơi quan trọng sẽ phá hủy các thuộc tính dự kiến của mã. Nhưng điều này không hề khác với SmallTalk; mọi ngôn ngữ song song đều có vấn đề này. Họ giải quyết bằng cách nhấn mạnh rằng a) bạn không thể làm gián đoạn một số điều) hoặc b) một số điều được giao dịch và hoàn thành không có vấn đề gì. Vì vậy, vấn đề chính với "làm cho Smalltalk song song" là việc bổ sung các chủ đề song song, và bổ sung an toàn giao dịch (cả trên một phần của công cụ thực hiện) và nơi lập trình khẳng định anh ta cần nó. –
@IraBaxter Tuyệt đối. Tôi chỉ muốn chỉ ra rằng một lượng nhỏ song song là tốt và vấn đề xảy ra khi bạn muốn tiến xa hơn. –