我的系统拥有大量核心和集群。对于无法进行串行实现的特定任务,我只能进行基准测试。在不同输入大小上运行任务所花费的时间。我发现,即使数据大小增加 10 倍,在使用相同资源的情况下,完成时间也少于 10 倍。我想知道如何衡量性能,因为这似乎不属于强/弱扩展的典型定义。这似乎与效率有关,但我不确定。根据我对这三个人的了解:
由于缺乏串行实现,我没有加速,而且 N a 是恒定的,所以我只能考虑使用强缩放来找到效率比。 CS里有这样的参数吗?
Apache Spark 适用于 250-500 GB 数据的工作负载。 B/M 使用 100% 和 10% 数据集完成。作业运行时间在 250-3000 秒之间,具体取决于类型和大小。我可以强制执行器数量为 1,且有 1 个执行器核心,但这是错误的,因为理论上只应编写最佳串行作业。
– 静止 24分钟前
(已添加网址)
感谢您的留言。问题有答案了:
问:...“CS里有这样的参数吗?”
关于上述问题的观察问题的答案与数据大小本身无关,数据大小很重要,但核心理解与分布式计算的内部功能有关管理费用很重要的地方:
SMALL RDD-DATA
+-------------------E-2-E ( RDD/DAG Spark-wide distribution
|s+------+o | & recollection
|e| | v s| Turn-Around-Time )
|t| DATA | e d |
|u|1x | r a |
|p+------+ h e |
+-------------------+
| |
| |
|123456789.123456789|
鉴于:
LARGER RDD-DATA
+--------:------:------:------:-------------------E-2-E ( RDD/DAG Spark-wide TAT )
|s+------:------:------:------:------+o + |
|e| : : : : | v s v|
|t| DATA : DATA : DATA : DATA : DATA | e d a|
|u|1x :2x :3x :4x :5x | r a r|
|p+------:------:------:------:------+ h e .|
+--------:------:------:------:-------------------+
| |
| | |
|123456789.123456789| |
| |
|123456789.123456789.123456789.123456789.123456789|
( not a multiple of 5x the originally observed E-2-E for "small" DATA ( Spark-wide TAT )
yet a ( Setup & Termination overheads stay about same ~ const. )
a ( a DATA-size variable part need-not yet may grow )
now
show an E-2-E of about ~ 50 TimeUNITs for 5-times more DATA,
that is
for obvious
reasons not 5-times ~ 20 TimeUNITs
as was seen
during the E-2-E TAT from processing in "small"-DATA use-case
as not
all system-wide overheads accumulation
scale with DATA size
要进一步阅读 Amdahl 的论点和 Gustafson/Barsis 提倡的扩展,请随时继续这里。