找回密码
 欢迎注册
楼主: 无心人

[擂台] x86上128位二进制乘法最快速算法征解

[复制链接]
发表于 2008-4-1 20:52:29 | 显示全部楼层
apfloat 的基选择是基于其数论原理的,需要三个充分大的素数。 HugeCalc小bit比GMP慢原因是多样的: 1、为适应多线程需要,适时响应用户退出请求,所以要经常检查终止标志,并用了 volatile 关键字进行限定(为防止被编译器优化掉); 2、HugeCalc 采用的是多层架构:无符号类-->有符号类-->代理类,且各层对出入参合法性进行了严格检查。因为用户没有源代码,所以在开发 Hugecalc 时严谨性、安全性始终是放在第一位的; 另,根据80/20法则,低级别算法应向高级别算法看齐,以避免切换算法时不必要的转换。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-1 20:56:09 | 显示全部楼层
看不到你算法 也不知道你为什么这么做 =============== 至于apfloat,你可能比我了解吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-1 21:05:23 | 显示全部楼层
你说道80/20规则 难道你为了20%以下的用户可能退出的操作 而浪费这么多的资源做退出标志检测么? 有别的方法吧 1、设定统一内存管理,防止内存泄露 2、使用监控线程负责线程的终止
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-1 21:52:58 | 显示全部楼层
用监控线程不好,它是一种非正常退出行为,很容易出问题。 我说的80/20法则,主要是指高级算法FFT/FNT即便被使用的概率没有常规算法的高, 但其效率却是起决定性作用的;把精力放在这关键性的20%上,将可收获80%, 一切的一切都要低阶算法向高阶算法看齐,尤其是在数据结构定义上。 HugeCalc 定位于超大规模的快速运算,而不仅仅定位于 RSA 之类的加解密; 诚然,在保证无损于高级算法的前提下,尽可能提高低级算法也是永远的追求目标。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-2 07:46:52 | 显示全部楼层
呵呵 XP还有监控进程呢 无所谓不好,关键在设计 98就是无监控进程造成容易死
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-2 07:57:37 | 显示全部楼层
不知道你这里说的监控是什么意思? OS肯定要监控进程的(毕竟进程是它创建的) XP和98稳定性的区别不在于是否对进程进行监控,而是是否对系统内存的访问进行了保护。 在XP(Windows NT)下,用户进程是没有权限修改系统进程的内存空间的,但是98不同。 所以在Windows NT下,如果一个进程出了问题,那么仅仅这个进程会崩溃,不会影响到系统。但是98就不同,一个错误的进程有可能会导致整个系统崩溃。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-2 08:27:44 | 显示全部楼层
环境不同 监控的意义不同 我说的监控指要GxQ在他库里建立一个独立于运算环境的进程 用来响应用户的退出和对内存的分配和销毁等
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-2 08:52:04 | 显示全部楼层

在DLL中很难实现。

若采用 无心人 的方案,用户如希望可随时终止运算, 则用户自己必须建多线程外,还必须通知DLL去创建监控线程,结束后再通知销毁。 因 DLL 无法在 DllMain() 中进行线程的创建/销毁, 所以对用户的行为要求更多,DLL内部也将变得不稳定。 该方案并不可取。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-2 09:21:57 | 显示全部楼层
线程的创建和销毁代价也是非常大的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-2 09:34:13 | 显示全部楼层
那就别考虑用户终止问题 大部分数学软件都似乎不提供这个功能 就你
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-15 09:58 , Processed in 0.023160 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表