World!Of Numbers | |||
Distributed Computation | |||
triangle square penta hexa hepta octa nona |
This basenumber 31.346.828.297.209.660.045.268.842.120.992.233 has 35 digits yielding the following sporadic palindromic square record number with odd number of digits 982.623.644.294.744.275.088.611.239.676.071.787.170.676.932.116.880.572.447.492.446.326.289 having a staggering length of 69 digits. |
That is the current state of affairs. People stare at it and are flabbergasted. An amazing sporadic palindromic square of length 67. Unfortunately a limit has been reached whereby one individual with its personal computer(s) can find the next sporadic palindromic square record in a reasonable amount of time. Hence the intention to start a distributed computation via a crowdsourced search using the program cudapalin that Robert Xiao wrote.
His program is luckily very amenable to a divide-and-conquer approach. I'll explain later on. The current limit of the cudapalin program lies around 77 digits. So we're good for a while. Cudapalin however is state of the art code tapping from the power of parallel computing using thousands of cudacores. CUDA is a rather silly acronym. You might have fun trying to guess the four words ( → Compute Unified Device Architecture). Robert can explain it better, it is an overarching name for a family of chip architectures for GPU's, and a developer-friendly language/platform for programs written for said chips, all under the company name of Nvidia. And these can mainly be found in graphics cards equipped with this Nvidia GPU (Graphics Processing Unit). If you are lucky to have such a hardware equipment (preferably of recent date) and you are interested in palindromic squares or just like to break a record then you have the right profile as a candidate or volunteer. If your hardware configuration is up for renewal anyway then grab the opportunity to include this Nvidia GPU in your new graphics card. Be aware that the latest version like the 4090-series with 16384 (=2^14) cudacores can be quite costly in purchase and the powerbill can be quite decent unless one has a solar installation. But that is up to you of course. The more cudacores available in your card the faster the computation will be. The speed will scale pretty much linearly with the number of cores. The following link provides an overview of all the specifications (cudacores, GPU clock speed, power consumption etc.) : Cudapalin is a command-line program so you’ll have to run it from a command prompt in a msdos like environment (e.g. PowerShell). With Windows 10 or 11 just start the CMD.exe app and quickly learn the tricks of the trade. To obtain the cudapalin program just sent me an email request at pdg@worldofnumbers.com with your name, the specifications of your Nvidia Card, the number of CUDAcores, the sector (suffixes) you like to reserve in the search, and I will will reply asap with the cudapalin program in attachment. Alas nothing as slick as for instance the GIMPS or the SETI@Home projects. |
It is best to leave the [K] parameter set to zero. This is intended for the specialists. Now let us perform our first search for palindromic squares of length [N] being the number of digits of the square for all possible base enddigits from 0 to 9. That is why the [SUFFIX...] parameter is left out. And here is the output :
So the program found 5 solutions of square length-7 in almost no time! Note that the first three are non-sporadic solutions. Redo the search now for length-48 palindromes :
My fast computer needed almost 42 seconds to find these two even length 48-digit palindromic squares. But the timings grow exponentially with larger and larger lengths. Note also that the palindromic squares are not necessarily sorted in ascending order. It is the base with its rightmost digit(s) that makes out the order. Here are the timings for our length-67 palindromic square with suffix 63. Suffix 63 was scanned in 21118.412571s (a little less than 6 hours). The search was first split up into a hundred parts from suffix 00 up to 99. Suffix 63 came out with the current record holder.
The timings for the suffixes might differ substantially. For instance for length-67 and suffix 01 my system needed 40463,205740s which is almost 11 hours and 15 min (double of suffix 63). Some regions will raise an error when a search is started with some suffixes. With squares this is the case with suffix 0 (like 90 or 150).
If F(x) ends with a zero, then conventionally we will not consider them to be palindromes at all. Cudapalin checks for this condition, and normally if you don't specify any suffixes (letting the program search over all possible x values) it will skip those x values entirely. If you specify suffixes, cudapalin assumes you wanted to search for those palindromes so it prints a warning and continues. To prevent loss of data after running cudapalin for a while one has to store the data somewhere safe from power outage or Microsoft forced OS updates or inadvertent app-closings. The usual way to do this is by storing the output in a logfile using a redirection. This has the disadvantage that the date isn't visible on screen anymore. To work around this problem we can use PowerShell for Windows (if not installed you can use this link https://github.com/PowerShell/PowerShell/releases). Then initiate 'PowerShell' from the Start Button and launch the version installed on your system. Enter the following example on the command line : |
The quotes must be included literally. The first path is to cudapalin , the second to the logfile location and filename (outputcp.txt → choose any name here). The -append switch adds all output at the end of whatever was in that file previously (or first creates the file if need be).
Finally here are the tables that give an overview of all participants, their reserved sectors/suffixes and progress in the search for palindromic squares of length 68 and 69. Myself I will immediately deal with suffixes ending with 01 and 11 as here lies almost all the non-sporadic solutions. See my NSSP program at the end of the subsquar.htm page. No need that a third party should send these to me, as they are always programmable for any length. The scope is set to the last two digits of the basenumber. This means that each length is divided into 100 parts (90 parts in fact as the suffix 0 falls off). If this is still too time consuming for you, no worry, you can yourself further divide it up into more smaller manageable sectors by taking suffixes of length 3. To all subscribers, thank you in advance for participating in this distributed project. Spread the word. The more the merrier. And not unimportant, if you find a new palindromic square the credits will always be associated with your name. Something to be proud of, especially after patiently running cudapalin for so long and silent waiting hours and/or days. |
DISTRIBUTED SEARCH FOR PALINDROMIC SQUARES OF LENGTH 68 CUDApalin Arguments 1 0 0 68 0 ?? | ||||
---|---|---|---|---|
Name of Participant | Type of Card | #CUDAcores | Reserved suffix(es) | Results, dates, comments, etc. |
from -- to -- | ||||
from -- to -- | ||||
from -- to -- |
DISTRIBUTED SEARCH FOR PALINDROMIC SQUARES OF LENGTH 69 CUDApalin Arguments 1 0 0 69 0 ?? | ||||
---|---|---|---|---|
Name of Participant | Type of Card | #CUDAcores | Reserved suffix(es) | Results, dates, comments, etc. |
Patrick De Geest | GeForce 4090 | 16384 | [01], [11] & [02] | sectors where the non-sporadics are hiding \begin{ March 28, 2024 } [01] finished in 263453,895031s ≈ 73h 11m → #nonsporadics=1189, #sporadics=0 [011] finished in 36590.720012s ≈ 10h 10m → #nonsporadics=215, #sporadics=0 [111] finished in 40524,242022s ≈ 11h 15m → #nonsporadics=31, #sporadics=0 [211] finished in 35632,499819s ≈ 9h 54m → #sporadics=0 [311] finished in 22919.600654s ≈ 6h 22m → #sporadics=0 [411] finished in 13880,654690s ≈ 3h 51m → #sporadics=0 [511] finished in 25665,316003s ≈ 7h 7m → #sporadics=0 [611] finished in 29345,073263 ≈ 8h 9m → #sporadics=0 [711] finished in 18100,222346 ≈ 5h 2m → #sporadics=0 [811] finished in 15506,892832s ≈ 4h 19m → #sporadics=0 [911] finished in 13396,243784s ≈ 3h 44m → #sporadics=0 [002] finished in 36311,982933s ≈ 10h 5m → #nonsporadics=2, #sporadics=0 [102] finished in 36604,821499s ≈ 10h 10m → #sporadics=0 [202] finished in 31794,095728s ≈ 8h 50m → #sporadics=0 [302] finished in 15552,760002s ≈ 4h 20m → #sporadics=0 [402] finished in 15276,908820s ≈ 4h 15m → #sporadics=0 [502] finished in 34306,146831s ≈ 9h 32m → #sporadics=0 [602] finished in 30541,521878s ≈ 8h 29m → #sporadics=0 [702] finished in 27807,484101s ≈ 7h 44m → #sporadics=0 [802] finished in 15758,569702s ≈ 4h 23m → #sporadics=0 [902] finished in 16320,615785s ≈ 4h 32m → #sporadics=0 \end{ April 11, 2024 } |
Patrick De Geest | GeForce 4090 | 16384 | from [21] to [91] |
\begin{ April 12, 2024 } [red = unfinished section][blue = finished section] [021][121][221][321][421][521][621][721][821][921] [031][131][231][331][431][531][631][731][831][931] [041][141][241][341][441][541][641][741][841][941] [051][151][251][351][451][551][651][751][851][951] [061][161][261][361][461][561][661][761][861][961] [071][171][271][371][471][571][671][771][871][971] [081][181][281][381][481][581][681][781][881][981] [091][191][291][391][491][591][691][791][891][991] \end{ May 16, 2024 } |
Patrick De Geest | GeForce 4090 | 16384 | from [12] to [92] |
\begin{ May 17, 2024 } [012][112][212][312][412][512][612][712][812][912] [022][122][222][322][422][522][622][722][822][922] [032][132][232][332][432][532][632][732][832][932] [042][142][242][342][442][542][642][742][842][942] [052][152][252][352][452][552][652][752][852][952] [062][162][262][362][462][562][662][762][862][962] [072][172][272][372][472][572][672][772][872][972] [082][182][282][382][482][582][682][782][882][982] [092][192][292][392][492][592][692][792][892][992] \end{ June 24, 2024 } |
Patrick De Geest | GeForce 4090 | 16384 | from [03] to [93] |
\begin{ June 24, 2024 } [003][103][203][303][403][503][603][703][803][903] [013][113][213][313][413][513][613][713][813][913] [023][123][223][323][423][523][623][723][823][923] [033][133][233][333][433][533][633][733][832][933] [043][143][243][343][443][543][643][743][843][943] [053][153][253][353][453][553][653][753][853][953] [063][163][263][363][463][563][663][763][863][963] [073][173][273][373][473][573][673][773][873][973] [083][183][283][383][483][583][683][783][883][983] [093][193][293][393][493][593][693][793][893][993] \end{ July 30, 2024 } |
Patrick De Geest | GeForce 4090 | 16384 | from [04] to [94] |
\begin{ July 30, 2024 } [004][104][204][304][404][504][604][704][804][904] [014][114][214][314][414][514][614][714][814][914] [024][124][224][324][424][524][624][724][824][924] [034][134][234][334][434][534][634][734][832][934] [044][144][244][344][444][544][644][744][844][944] [054][154][254][354][454][554][654][754][854][954] [064][164][264][364][464][564][664][764][864][964] [074][174][274][374][474][574][674][774][874][974] [084][184][284][384][484][584][684][784][884][984] [094][194][294][394][494][594][694][794][894][994] \end{ August 29, 2024 } 50% scanned. Needed approx. 5 months. |
from -- to -- | ||||
from -- to -- | ||||
from -- to -- | ||||
from -- to -- | ||||
from -- to -- |
[ TOP OF PAGE]