试图了解超级计算机

我是一名计算机科学与软件工程专业的高级学生,我想知道是否有人可以帮助澄清有关超级计算机如何工作的几件事。

我了解多台计算机如何通过以太网连接以及检查网络上的套接字是否繁忙而相互连接。我也了解计算机如何使用上述套接字并通过它们发送数据包来相互传递信息。

我还对线程以及操作系统如何通过评估核心使用情况和调度线程同时运行来将任务调度到CPU和硬件上进行了一些了解。

我想说的最大的问题是,超级计算机如何知道将哪些任务分配给群集中的不同节点?我的基本原理是,它可以检查节点是否繁忙,如果不繁忙,则可以向该节点发送线程或单个任务。但是,我可以看到的问题是,如果线程尝试运行的任务很小,例如简单的加法计算,我觉得将数据发送到另一个节点需要花费时间,计算,然后将数据发送回去,将远远大于节点自己执行数据的时间。

因此,我想问一个超级计算机如何调度自身与节点之间的不同任务?主节点是否自己进行过计算?

非常感谢您的帮助!