Đồng thời tốt đòi hỏi nhiều hơn là ném một vài luồng trong một ứng dụng và hy vọng điều tốt nhất. Có một phạm vi trong cách đồng thời một chương trình có thể đi từ song song lúng túng sang tuần tự thuần túy. Bất kỳ chương trình cụ thể nào cũng có thể sử dụng luật của Amdahl để diễn tả mức độ có thể mở rộng của một vấn đề hoặc thuật toán. Một vài bằng cấp cho một ứng dụng song song đáng xấu hổ sẽ là:
- Không có trạng thái chia sẻ, mọi chức năng chỉ phụ thuộc vào các tham số được truyền vào
- Không có quyền truy cập vào các thiết bị vật lý (card đồ họa, ổ cứng, v.v.)
Có những bằng cấp khác, nhưng chỉ với hai điều này, chúng ta có thể hiểu tại sao các trò chơi nói riêng không dễ như bạn nghĩ để tận dụng nhiều lõi. Đối với một, mô hình của thế giới sẽ được kết xuất phải được chia sẻ dưới dạng các chức năng khác nhau tính toán vật lý, chuyển động, áp dụng trí tuệ nhân tạo, vv Thứ hai, mỗi khung hình của mô hình trò chơi này phải được hiển thị trên màn hình bằng thẻ đồ họa.
Công bằng mà nói, nhiều nhà sản xuất trò chơi sử dụng các công cụ trò chơi được sản xuất bởi các bên thứ ba. Phải mất một thời gian, nhưng các công cụ trò chơi của bên thứ ba này hiện đang song song hơn nhiều so với trước đây.
Có những thách thức kiến trúc lớn hơn trong việc xử lý đồng thời hiệu quả
Đồng thời có thể có nhiều hình thức, từ chạy các tác vụ trong nền đến hỗ trợ kiến trúc đầy đủ cho đồng thời. Một số ngôn ngữ cung cấp cho bạn các tính năng tương tranh rất mạnh như ERLANG , nhưng nó đòi hỏi bạn phải suy nghĩ rất khác về cách bạn xây dựng ứng dụng của mình.
Không phải mọi chương trình thực sự cần sự phức tạp của hỗ trợ đa lõi đầy đủ. Một ví dụ như vậy là phần mềm thuế, hoặc bất kỳ ứng dụng định hướng nào. Khi hầu hết thời gian của bạn dành cho việc chờ đợi người dùng làm việc gì đó, sự phức tạp của các ứng dụng đa luồng chỉ là không hữu ích.
Một số ứng dụng cho vay một giải pháp song song đáng xấu hổ hơn, chẳng hạn như các ứng dụng web. Trong trường hợp này, nền tảng bắt đầu song song lúng túng và tùy thuộc vào bạn không phải áp đặt tranh chấp luồng.
Điểm mấu chốt:
Không phải tất cả các ứng dụng đều thực sự bị tổn thương do không tận dụng được nhiều luồng (và do đó, lõi). Đối với những người bị tổn thương bởi điều đó, đôi khi các tính toán không thân thiện với xử lý song song hoặc chi phí để phối hợp nó sẽ làm cho ứng dụng trở nên dễ vỡ hơn. Thật không may, xử lý song song vẫn không dễ dàng như nó phải làm tốt.