问题标签 [high-speed-computing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - 切换到并行编码
我们都为单处理器编写代码。我想知道我们什么时候都能够在多处理器上编写代码?
我们需要什么(软件工具、逻辑、算法)来进行这种切换?
编辑:在我看来,当我们并行执行许多任务时,我们需要将这些现实生活中的解决方案(算法)转换为计算机语言。就像 OOP 编码对过程编码所做的那样。OOP 是一种比程序更真实的编码风格。所以我希望有这种解决方案。
mysql - 在 MySQL 中执行非常大 (20 GB) .sql 文件的更高速度选项
我的公司收到了一个超过 20 GB 的 .sql 文件,以响应来自政府的数据请求。我没有很多选项可以获取不同格式的数据,因此我需要如何在合理的时间内导入数据的选项。我正在使用 Navicat 的批处理执行工具在高端服务器(Win 2008 64bit,MySQL 5.1)上运行它。它已经运行了 14 个小时,并且没有显示接近完成的迹象。
有谁知道这种交易的任何更高速度的选择?或者这是我应该期待的大文件大小?
谢谢
python - python中的快速、大宽度、非加密字符串散列
我需要 python 中的高性能字符串散列函数,它产生至少34位输出的整数(64 位是有意义的,但 32 位太少了)。Stack Overflow 上还有其他几个类似这样的问题,但在我能找到的每个接受/赞成的答案中,我都属于不适用的几个类别之一(由于给定的原因。)
- 使用内置
hash()
函数。这个函数,至少在我正在开发的机器上(使用 python 2.7 和 64 位 cpu)产生一个适合 32 位的整数 - 对于我的目的来说不够大。 - 使用哈希库。hashlib 提供了加密哈希例程,这比用于非加密目的所需的速度要慢得多。我觉得这是不言而喻的,但是如果您需要基准和引用来说服您相信这一事实,那么我可以提供。
- 使用该
string.__hash__()
函数作为原型来编写您自己的函数。我怀疑这将是正确的方法,除了这个特定函数的效率在于它使用 c_mul 函数,该函数包含 32 位 - 再次,对我来说太小了!非常令人沮丧,它是如此接近完美!
理想的解决方案应具有以下属性,按相对松散的重要性顺序排列。
- 具有至少扩展 34 位(可能是 64 位)的输出范围,同时在所有位上保持一致的雪崩特性。(连接 32 位散列往往会违反雪崩特性,至少在我的愚蠢示例中是这样。)
- 便携的。给定两台不同机器上的相同输入字符串,我两次都应该得到相同的结果。这些值将存储在文件中以供以后重复使用。
- 高性能。越快越好,因为在我正在运行的程序执行期间,这个函数将被调用大约 200 亿次(目前它是性能关键代码。)它不需要用 C 编写,它真的只需要优于 md5 (在字符串的内置 hash() 领域的某个地方)。
- 接受一个“扰动”(这里用什么更好的词?)整数作为输入来修改输出。我在下面举了一个例子(列表格式规则不允许我把它放在更近的地方。)我想这不是 100% 必要的,因为它可以通过手动扰动函数的输出来模拟,但是把它作为输入给了我好温暖的感觉。
- 完全用 Python 编写。如果它绝对肯定需要用 C 编写,那么我想这可以做到,但我会选择用 python 编写的函数比用 C 编写的更快的函数慢 20%,这只是由于使用两种不同语言的项目协调头痛. 是的,这是一个逃避,但这是一个愿望清单。
“扰动”哈希示例,其中哈希值被一个小整数值 n 急剧改变
最后,如果你好奇我到底在做什么,我需要这样一个特定的哈希函数,我正在对 pybloom 模块进行完全重写,以显着提高其性能。我成功了(现在它的运行速度提高了大约 4 倍,并使用了大约 50% 的空间),但我注意到有时如果过滤器变得足够大,它的误报率会突然飙升。我意识到这是因为哈希函数没有解决足够的位。32 位只能处理 40 亿位(请注意,过滤器寻址的是位而不是字节),而我用于基因组数据的一些过滤器会增加一倍或更多(因此至少 34 位。)
谢谢!
io - 微控制器从 IO 引脚读取的速度有多快?
真正令人惊奇的是如下所示。我将向 20 Mhz 的微控制器提供 8 位数据、1 个时钟和 1 个数据有效信号;然后想通过以太网或 USB 发送数据。我怀疑这是否可以由 STM32F2xx 等微控制器完成。
非常感谢。
filtering - 高速运行过滤器
我正在用 CVI 编写信号处理软件。我有一个信号,通过 USB 以非常高的速度(~50K)传输到计算机。我想在 RT 中过滤它。为了做到这一点,我在 Simulink 中创建了一个过滤器并将其转换为 C 代码,我在 CVI 中使用以下代码运行:
- FuncName_initialize()
- 函数名.in
- FuncName_step()
- 函数名输出
问题是一段时间后(大约 5-7 分钟),过滤器工作错误......意味着显示不准确的结果和伪影。我相信这是因为使用速度太快(因为我之前以较低的速度使用过它,这很好)。
关于可能是什么问题的任何建议?如何直接在 CVI 中实现 RT 过滤器(意思是在输入获得一个点并在输出中获得一个点,同时保持一些窗口)。
我知道以这种速度传输的数据很好,因为记录信号工作正常,并且在屏幕上显示原始数据也工作正常。
谢谢
cpu-architecture - 本地 CPU 可能会降低远程 CPU 的数据包接收性能
我有一台带有 2 个 Intel Xeon CPU E5-2620(Sandy Bridge)和一个 10Gbps 82599 NIC(2 个端口)的服务器,用于高性能计算。从 PCI 亲和性来看,我看到 10G 网卡连接到 CPU1。我启动了几个数据包接收线程进行实验,线程接收数据包,进行IP / UDP解析,并复制到缓冲区。我10G网卡用的驱动是IOEngine PacketShader/Packet-IO-Engine · GitHub
第一季度!空闲 CPU1 降低 CPU0 数据包接收性能
1.1) 如果 1 或 2 或 4 个线程绑定到 CPU0,所有线程的整体性能约为 2.6-3.2Gbps 1.2) 如果 2 个线程绑定到 CPU1,整体性能为 16.XGbps 1.3) 如果 4 个线程绑定到CPU1,综合性能19.XGbps(2*10G端口最大)
由于CPU0没有直接和网卡相连,看来CPU0上的最大接收速度是2.6-3.2Gbps。但是我发现如果在 CPU1 上运行一些计算密集型进程,CPU0 上的数据包接收线程在 2 个线程时提升到 15.XGbps,在 4 个线程时提升到 19.XGbps。
这是因为电源管理吗?如果CPU1空闲,它会在省电模式下运行吗?即使是这样,CPU1 又如何影响 CPU0 的性能呢?QPI有什么我不知道的吗?
第二季度!CPU1 过载会降低所有数据包接收性能
2.1)如果CPU0上运行1个收包线程,CPU1上运行1个收包线程,则综合性能为10Gbps。每个线程的性能几乎相同——5.X Gbps。2.2)如果CPU0上运行2个数据包接收线程,CPU1上运行2个数据包接收线程,综合性能为13Gbps。而且每个线程的性能几乎一样——3.X Gbps,低于2.1、1.2、1.3
简而言之,当接收到同时在 CPU0 和 CPU1 上运行的线程时,所有线程都无法发挥其最大性能,它们的性能几乎相同。
我认为关于 NUMA 和 QPI 有很多我不知道的地方,有人可以帮我解释一下吗?谢谢
python - Python高速memcpy
我正在尝试在 Python 中进行高速 memcpy。我使用允许我与 C 程序交互的 ctypes 库。
我按照以下步骤操作:
- 我得到内存地址
- 我得到数据的长度
- 我使用 ctypes 的函数 memmove 或 string_at
结果是正确的,但我需要更高的速度。在不使用 C 的情况下,有没有更快的方法来做到这一点?
谢谢你。
high-speed-computing - 计算机计算 (2*2) 或 (0.02*0.02) 的成本哪个更高?
标题说了算。我想知道标准化是否对计算有任何影响。归一化会影响计算吗?
tensorflow - 尽快从我训练的模型中获取预测结果(tensorflow)
在张量流中,我想尽快从我训练的模型中获得预测结果
因此,我尝试了之前建议的几种组合,速度结果看起来像这样(左边是最快的)
import tf1 result = model(input)
> import tf2 result = model(input)
>=import tf1 result = model.predict(input)
特别是,import tf1 result = model(input)
比其他方法超级快但是,tf1
转换result
tensor
为numpy array
使用(sess.run()
或eval()
其他方式,如 No.1)非常耗时
因此,如果你们提供一些意见或提示来解决这个问题,我将不胜感激。
我附上了我的代码名为“AI_simulation”的代码函数是回调函数
在代码中,速度结果是,,
1号
2号
3号
4号