当前位置: 首页 > article >正文

解决return code from pthread_create() is 22报错问题

今天在处理芯片数据,在使用rma方法对数据进行预处理时报错,试了非常多的方法,记录一下。

可能时rma函数会涉及调用多线程的操作,这一过程会产生冲突。此错误表示在规范化过程中创建新线程时出现问题,特别是与 pthread_create() 函数有关。为了解决这个问题,我们可以在负责 normalize.quantiles 函数的 preprocessCore 包中禁用线程。禁用线程将强制包以单线程模式运行,这可以避免 pthread_create() 错误。

解决方法如下:

#设置禁用线程的配置参数:
configure.args <- c(preprocessCore = "--disable-threading")
options(configure.args = configure.args)
#重新安装 preprocessCore 包:
renv::install("bioc::preprocessCore", rebuild = TRUE, force = TRUE, update = TRUE, type = "source")

最后一步,需要重启R(需要耐心等待一会儿)

重启之后,再次运行rma函数,发现报错消失,问题成功解决!


此解决方案通过将包限制为单线程操作来有效解决 pthread_create() 错误。虽然这可能会在多核环境中略微降低性能,但它确保了稳定性并避免了导致错误的线程问题。

至于取消以上操作,可以运行如下代码,记得仍需要重启R:

options(configure.args = NULL)
renv::install("bioc::preprocessCore", rebuild = TRUE, force = TRUE, update = TRUE, type = "source")

参考:

[1] 处理 R 中的“pthread_create()”错误 |基因组学 AI --- Handling the `pthread_create()` Error in R | Genomics AI (chaochungkuo.github.io)


http://www.kler.cn/a/382693.html

相关文章:

  • 【C++动态规划 01背包】2787. 将一个数字表示成幂的和的方案数|1817
  • 《Linux运维总结:基于银河麒麟V10+ARM64架构CPU部署redis 6.2.14 TLS/SSL哨兵集群》
  • Charles抓包_Android
  • 【Wi-Fi】802.11ac wave1 vs 802.11ac wave2
  • MySQL是怎么保证高可用的?
  • Caffeine 手动策略缓存 put() 方法源码解析
  • 《运维网络安全》
  • 对比Java和TypeScript中的服务注册和查找机制
  • 在 JavaScript 中,`Array.prototype.filter` 方法用于创建一个新数组,该数组包含通过测试的所有元素
  • 机器人助力Bridge Champ游戏:1.4.2版本如何提升玩家体验
  • java 实训第12天 (git版本控制继续)
  • 【无标题】特征降维的常见方法
  • 3D互动+AR试戴,重塑线上珠宝营销新体验!
  • 【题解】—— LeetCode一周小结44
  • 效果框架(效果ID3DXEffect)
  • ML 系列:机器学习和深度学习的深层次总结( 19)— PMF、PDF、平均值、方差、标准差
  • 浮动路由:实现出口线路的负载均衡冗余备份。
  • 【软考】错题分析1105
  • ONLYOFFICE 8.2深度测评——助力自动化办公
  • 2024系统架构师---论软件系统架构风格论文
  • Linux grep命令详解(多图、多示例)
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)
  • HarmonyOS使用arkTS拉起指定第三方应用程序
  • 基于机器学习算法的中风患者数据分析与可视化预测设计与实现
  • 网络学习/复习4传输层UDP/TCP(协议属性详解、主机间连接状态详解)
  • Fsm serialdata