spark2.3.1+jdk1.8向下兼容1.7(生产机器为jdk1.7)

1、打包

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>${spark.version}</version>
    <!-- 编译环境能用,运行环境不可用(打包时不打进来) -->
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.11</artifactId>
    <version>${spark.version}</version>
    <!-- 编译环境能用,运行环境不可用 -->
    <scope>provided</scope>
</dependency>

2、上传到生产集群/opt/core/spark-2.3.1-bin-hadoop2.6/bin/spark-submit --class com.jiupaipay.wordcount.WordCount --master local[*] ./sparkwordcount-1.0-SNAPSHOT-jar-with-dependencies.jar

/opt/core/spark-2.3.1-bin-hadoop2.6/bin/spark-submit --queue root.line.pay --class com.jiupaipay.wordcount.WordCount --master yarn-client ./sparkwordcount-1.0-SNAPSHOT-jar-with-dependencies.jar

在比较TensorFlow和PyTorch 2.3.1版本的CPU与CUDA支持时,可以从多个维度进行分析,包括性能优化、功能特性、易用性以及生态系统支持等。 ### 性能优化 对于TensorFlow而言,其在CPU上的性能优化主要集中在提高推理速度和降低内存占用上。通过使用Intel MKL(Math Kernel Library)等数学库,TensorFlow能够在CPU上实现高效的数值计算[^1]。而在CUDA支持方面,TensorFlow提供了对NVIDIA GPU的强大支持,利用CUDA和cuDNN库加速深度学习模型的训练和推理过程,特别是在大规模数据集和复杂模型结构下表现尤为突出。 PyTorch同样重视CPU和GPU上的性能优化。它不仅支持通过OpenMP等技术加速多核CPU上的计算任务,还针对NVIDIA GPU进行了深度优化,支持动态计算图的即时编译优化,进一步提升了模型执行效率。PyTorch 2.3.1版本中,对于CUDA的支持更加成熟,能够更好地处理自动求导和并行计算任务[^2]。 ### 功能特性 TensorFlow以其静态计算图机制著称,这种设计有利于模型的部署和服务化,尤其是在生产环境中。同时,TensorFlow提供了一系列工具和服务,如TensorBoard用于可视化训练过程,TF Serving用于模型服务部署等。这些工具和服务无论是在CPU还是GPU环境下都能很好地工作。 相比之下,PyTorch以动态计算图为特色,这使得开发和调试变得更加灵活便捷。PyTorch 2.3.1版本继续加强了这一优势,并且引入了一些新的特性,比如更好的分布式训练支持,以及更强大的自动微分能力。此外,PyTorch也提供了一套完整的工具链,例如TorchVision、TorchText等,方便开发者快速构建和测试模型。 ### 易用性和生态系统支持 在易用性方面,两者都做了大量的工作来简化用户的开发流程。然而,PyTorch因其简洁的API设计和Pythonic的编程风格受到了许多研究人员的喜爱;而TensorFlow则凭借其全面的文档和支持社区赢得了广泛的工业界应用。 生态系统方面,TensorFlow拥有更为庞大的第三方库和支持,这得益于它的早期市场占有率和Google的持续投入。不过,随着PyTorch在学术界的流行,越来越多的研究项目开始采用PyTorch作为首选框架,这也促进了PyTorch生态系统的快速发展。 ### 示例代码:检查设备支持情况 以下是一个简单的示例,展示如何在PyTorch中检查当前环境是否支持CUDA: ```python import torch # 检查是否有可用的CUDA设备 if torch.cuda.is_available(): # 获取当前设备数量 device_count = torch.cuda.device_count() print(f"Available CUDA devices: {device_count}") # 列出每个设备的名字 for i in range(device_count): print(torch.cuda.get_device_name(i)) else: print("No CUDA devices available.") ``` 对于TensorFlow,可以使用如下代码来获取设备信息: ```python from tensorflow.python.client import device_lib def get_available_devices(): local_device_protos = device_lib.list_local_devices() return [x.name for x in local_device_protos] print(get_available_devices()) ``` 以上代码可以帮助开发者快速了解自己的开发环境支持哪些类型的计算设备,从而决定是否需要调整模型训练或推理的具体配置。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值