Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 利用神经网络进行软件性能自动调整_Performance_Optimization_Neural Network_Messaging_Ibm Mq - Fatal编程技术网

Performance 利用神经网络进行软件性能自动调整

Performance 利用神经网络进行软件性能自动调整,performance,optimization,neural-network,messaging,ibm-mq,Performance,Optimization,Neural Network,Messaging,Ibm Mq,我目前正在测试两个不同消息传递系统的性能,有许多独立的调优和加载参数会影响消息速率。我想开发一种自动化方法,在给定硬件上每秒生成最大消息速率 常数: #CPU、内存、网络和其他硬件参数都是常数(或者至少有一个已知的最大值) 操作系统和消息传递产品的版本是一个常量(例如WebSphere MQ 7.5) 消息大小 3分钟完成一次测试测量 预期结果: 每秒消息的最大速率 变量: 操作系统调优选项(内核、TCP和其他网络和内存) 消息传递软件优化设置—其中有几十种(各种类型的缓冲区大小、线程

我目前正在测试两个不同消息传递系统的性能,有许多独立的调优和加载参数会影响消息速率。我想开发一种自动化方法,在给定硬件上每秒生成最大消息速率

常数:

  • #CPU、内存、网络和其他硬件参数都是常数(或者至少有一个已知的最大值)
  • 操作系统和消息传递产品的版本是一个常量(例如WebSphere MQ 7.5)
  • 消息大小
  • 3分钟完成一次测试测量
预期结果:

  • 每秒消息的最大速率
变量:

  • 操作系统调优选项(内核、TCP和其他网络和内存)
  • 消息传递软件优化设置—其中有几十种(各种类型的缓冲区大小、线程数、队列管理器数、队列数、客户端的不同绑定、安全设置、日志类型、日志和数据文件的数量和大小等…)
  • 消息生产者和消费者的数量(比如从1到10000)
目前,性能调整是作为一个迭代过程完成的——一次更改一个变量,测量msg/秒,冲洗并重复

我已经开发了一个脚本框架,可以在不同的设置上迭代,但是如果我以50层的嵌套循环的形式进行,并迭代每个变量的每个可能值,那么这个过程将需要数百年才能完成。包括一个随机因素可能会有所帮助,但我想做的是使用神经网络为我的调节变量找到最佳设置


我找到了一些关于这类事情的研究论文,但没有找到任何真正的实现。有人做过吗?有关于如何进行的建议吗?我没有研究过神经网络,但在大学里做过数学规划(优化),通常的优化方法要花很长时间才能解决这个问题。

这种问题听起来不太适合神经网络。神经网络可能最常用作有监督学习的分类器。通常,您必须有一个包含已分类示例的培训集。也有一些无监督的方法,最近最显著的可能是。但这是一个活跃的研究领域,我怀疑是否有现成的工具来满足你的需要

在参数空间中存在组合爆炸问题。这类问题通常非常适合用进化算法来解决。例如或

有了遗传算法,问题的解决就转向了寻找问题

  • 一个很好的问题表示,允许您进行交叉和变异
  • 一个合适的适应度函数
这通常被证明是非常困难的

然而,您的问题似乎非常适合这种方法:

  • 单个解决方案表示法:参数列表
    i=[p_1,p_2,…,p_n]
  • i_1
    i_2
    的交叉:在
    1
    n
    之间选择一个分割点,并交换个人列表的各个部分
  • 突变:选择一个参数并进行调整
  • 适应度函数:每秒消息的速率

虽然不能保证通过这种方式获得最佳解决方案,但它可以帮助您非常有效地应对组合爆炸。

这种问题听起来不太适合神经网络。神经网络可能最常用作有监督学习的分类器。通常,您必须有一个包含已分类示例的培训集。也有一些无监督的方法,最近最显著的可能是。但这是一个活跃的研究领域,我怀疑是否有现成的工具来满足你的需要

在参数空间中存在组合爆炸问题。这类问题通常非常适合用进化算法来解决。例如或

有了遗传算法,问题的解决就转向了寻找问题

  • 一个很好的问题表示,允许您进行交叉和变异
  • 一个合适的适应度函数
这通常被证明是非常困难的

然而,您的问题似乎非常适合这种方法:

  • 单个解决方案表示法:参数列表
    i=[p_1,p_2,…,p_n]
  • i_1
    i_2
    的交叉:在
    1
    n
    之间选择一个分割点,并交换个人列表的各个部分
  • 突变:选择一个参数并进行调整
  • 适应度函数:每秒消息的速率

虽然不能保证通过这种方式获得最佳解决方案,但它可以帮助您非常有效地应对组合爆炸。

这种问题听起来不太适合神经网络。神经网络可能最常用作有监督学习的分类器。通常,您必须有一个包含已分类示例的培训集。也有一些无监督的方法,最近最显著的可能是。但这是一个活跃的研究领域,我怀疑是否有现成的工具来满足你的需要

在参数空间中存在组合爆炸问题。这类问题通常非常适合用进化算法来解决。例如或

有了遗传算法,问题的解决就转向了寻找问题

  • 一个很好的问题表示,允许您进行交叉和变异
  • 一个合适的适应度函数
这通常被证明是非常困难的

你的问题,豪夫