![运行大脚本 ubuntu mate 16.04 后计算机挂起](https://linux22.com/image/1062974/%E8%BF%90%E8%A1%8C%E5%A4%A7%E8%84%9A%E6%9C%AC%20ubuntu%20mate%2016.04%20%E5%90%8E%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%8C%82%E8%B5%B7.png)
我正在使用 ubuntu mate 16.04,最近我运行了一个旨在使我的 CPU 超载的 mpi 脚本。运行并终止脚本后,我开始遇到问题:- 许多简单命令(如 ifconfig)会卡住并挂起。- 尝试终止这些进程,即使使用 -9 标志,也不起作用 - 重新启动机器也会挂起,我已使用按钮强制关闭它
重新启动机器后,我再也没有运行过该脚本,但过了一段时间后,我再次看到命令开始挂起,或者网络管理器服务卡住,或者发生了其他奇怪的事情,我意识到症状再次出现,我必须重新启动 - 再次挂起 - 然后我强制关机。
使用 top 或 ps 我没有发现任何奇怪的东西。我运行了 checkbox-gui 硬件扫描,没有发现问题。
这是我运行的脚本:
mpirun -n 2 python bigScript.py -o /dev/null
其中 bigScript.py 只是:
2**10000000000000
当它运行时,它确实占用了我 100% 的 CPU。
任何帮助将不胜感激。
答案1
很可能是系统内存不足,并且大量使用交换空间。
我无法在具有 32 Gb RAM + 32 Gb 交换空间的系统上使用一个线程获得结果。
您正在尝试计算2^(1e13)
,这是一个非常大的数字。
我即使用四元数学也无法计算它:
// This is quad_pow.c
// Compile it with gcc quad_pow.c -lquadmath -o quad_pow; ./quad_pow
#include <stdio.h>
#include <quadmath.h>
#define LEN 10240
int main()
{
char power[LEN], s_result[LEN];
printf("Please enter `power` for 2^(`power`):\n");
scanf("%s", power);
__float128 result = powq(2, strtoflt128(power, NULL));
quadmath_snprintf(s_result, LEN, "%Qf", result);
printf("2^%s = %s\n", power, s_result);
return 0;
}
我最后能计算的是2^16383
:
2^16383 = 594865747678615882542879663314003565381722343548255118736337410616630679090241843452244297736306019957557718742419654629448833690654343713137262349170782503040435817183002448761071625809765723422976172854741067923518323732415492392357140483922807069238022169202443061452643427656618079347999942895053178509060407681660390482161856378582145306703437601208682661975133940044533758686135305417823772877890396715811106725951908929815345155671925328769680324822596641589145883829482702642556778067184896640862944007954207337644916269031709617444299949490311557012560837236025936219660661599201471352670683475637369507296908449144497222586700182308964188569037205672895924286797538585218822095871944822442688842369161120304119539530699737837667369892008245871310742614507423836167988948579198667113174867405720826538879125494463015447394802338076552128630070903411513794001720975727663850799035640794798584706982804219752491585627531141013313100024021074904100001030496716840618811928940313739863536438741419219352524017082316668506692702999020350954331193650802509094131286861883139620399465858854403950870132703965488209824438934802008758845969343994044004472125629413484844182097066972890078922182473026356827727453163593714265947550139347559661748404351815218096963796346172410406417148682239343431032084521229277568266027525254094945933423431899958823773645685786750350507598779548726520016515760341759108247097818348038874055299142450671805734607137060905247538989637778322582491925031025533258542323684732018320284669732418586091676478436956021320001805809394639097855026047281380653351775920165055322550997717583813344334813881910302171240178953207677106366473378036503453544435248062525034078329626380648832032749173746330899412031156105204637292282793632423208825080061587937017363130978644540733098825776915372212354849317376813885178113563072526274562614724020074557397840679937984256404287622135935727727042447493077510397403490469607829027659582820840552983227079975738454291564860751649408292571036530740444010884909169208564698439185729787923026291571464223624851849274062647887960468225011325713624974790354101983041423775460945576066660524005986941818288912766662994426078162719667510657656067040695225510627681853951747958481562962100583938595054467627957269744108448558971634686804319537236396375558357563553198212540676776568606776445269901301489322659897550488216469545962330114439456450327105059143649149353691079858592284770257701514586653646227195894784337109820380725586800308876093495956683418516943600791035812934123566552256657548637356721364170303321445203248318052221608876405613735014581429046863850524823249770110491990966393306602127113232121844805053714961598819340772918780886767784492268026813617212138552880462432011890814832763157455453480244036737608502560568155935219962881254333016283106875208347859959837111605303362360686735617010806770356094119954850985971972173740157108951943158883889960769946088667172184453775159400416773426172185163544642073750820294724241000627118693340037228670955466887445979840508258034553074952786212905447793469416533745102450184312083150984276502843520142547725242420036764321913285201883578643256190127554977259428506738294094650002069424857941569933035773787408238363817558217731402200556355696264590285397096711343409176606399534486123848595737134078956097986897096403649443476180550440132129400660464020005964076985400565370669775001649507962489129968487179363143071990260056227184635557041873959503901703298160676708502034434721702736070337981820498702504612901752836363232547753133669634446212182280948830953449212093385245517672040199624163548955856440570085192091029300807379142100375091750164679249845932033295269830354534768690800943839523328879827294000968558885672349163214396311447169008056222766769723543731024881704573771049624407760697964694003855586008947448896853302136740492580514407729393955580489556711216778774585452721013198637847641603652665922709995374673905262003097098600295826073933596848127168932490801916573177100850314408973588759057608837176008255586173863863537610028088874109464298579173372270668553679213878959830281291941911631089480845893613059432816382467144386202929877438879934617765326964968950596805834503736177373180382300936221015689972069912183414349395106461498087096364312945860028806254674550241272982076023238962557223250366082054549672629899727845047788394343198743530974427374512431803960928917102896898594417389828136739556194292853212418189536177705143393509263700826967109944180530974835980527534343480734009517814874712043293597520502202457633238136380535255784193531700632068258618605704958229398173812474607952266968605468760232899150087704008769431156359521180518564669448293014075023298039436222182782240272844516787977851494198359872264106492071289241977002542132163865420492710010704534742706160402634260047073399438055207291585195236991244449614045909106967144147839858684971576230223513645334982033408.000000
它对应于#define FLT128_MAX_EXP 16384
在quadmath.h
请注意log10(16383) = 4.2143934
,比小三倍13
!
WolframAlpha 可以计算直到 2^(1e9)。
如果你需要测量系统性能,你应该使用 LINPACK或类似的东西。