World!Of
Numbers
HOME plate
WON |
Distributed Computation
rood triangle rood square rood penta rood hexa rood hepta rood octa rood nona


Introduction

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.


Distributed Computation

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.) :
https://www.studio1productions.com/Articles/NVidia-GPU-Chart.htm

 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.

The program is very straightforward. It searches for palindromes of arbitrary quadratics. So they are of the general type Ax2+Bx+C=0. A, B and C are thus three parameters that must be passed to the program. Searching for squares obviously require B and C to be zero and A=1. Running the program without any parameters or arguments gives an overview of how to implement the parameters, a short help as it were :

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 :

C:\Cudapalin>2022-11-14-cudapalin.exe 1 0 0 7 0 
Finding length-7 palindromes of the form F(x) = x^2 (using K = 2) 
Processing suffix 1
1001 1002001
1111 1234321
Finished suffix 1 in 0.001315s
Processing suffix 2
2002 4008004
Finished suffix 2 in 0.000528s
Processing suffix 3
Finished suffix 3 in 0.000320s
Processing suffix 4
Finished suffix 4 in 0.000337s
Processing suffix 5
2285 5221225
Finished suffix 5 in 0.000480s
Processing suffix 6
2636 6948496
Finished suffix 6 in 0.000445s
Processing suffix 7
Finished suffix 7 in 0.000334s
Processing suffix 8
Finished suffix 8 in 0.000423s
Processing suffix 9
Finished suffix 9 in 0.000345s
Finished finding length-7 palindromes of the form F(x) = x^2 (K = 2) in 0.005238s 

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 :

C:\CUDApalin>2022-11-14-cudapalin 1 0 0 48 0 
Finding length-48 palindromes of the form F(x) = x^2 (using K = 12) 
Processing suffix 1
Finished suffix 1 in 7.087145s
Processing suffix 2
Finished suffix 2 in 4.446963s
Processing suffix 3
Finished suffix 3 in 3.420169s
Processing suffix 4
831775153121251039203514 691849905349880612384525525483216088943509948196
Finished suffix 4 in 3.858238s
Processing suffix 5
722956456358957313434535 522666037791100950480675576084059001197730666225
Finished suffix 5 in 4.144074s
Processing suffix 6
Finished suffix 6 in 3.864197s
Processing suffix 7
Finished suffix 7 in 3.432827s
Processing suffix 8
Finished suffix 8 in 4.465314s
Processing suffix 9
Finished suffix 9 in 7.117333s
Finished finding length-48 palindromes of the form F(x) = x^2 (K = 12) in 41.837423s 

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.

C:\CUDApalin>2022-11-14-cudapalin 1 0 0 67 0 63 
Finding length-67 palindromes of the form F(x) = x^2 (using K = 17) 
Processing suffix 63
3109885844380152888763910885950363 9671389965076056510789702463424611164243642079870156506705699831769
Finished suffix 63 in 21118.412407s
Finished finding length-67 palindromes of the form F(x) = x^2 (K = 17) in 21118.412571s 

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).
For slower pc's these timings might become days instead of hours. Hence the need for splitting the search up into more and more suffixes. Fixing already three last digits results in thousand subdivisions but with the advantage that a scan will finish in a reasonable amount of time. And that is were the distributed project comes in handy.

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).

C:\Cudapalin>2022-11-14-cudapalin.exe 1 0 0 7 0 90 
Warning: F(x) ends with 0 for suffix 90 - results will not be valid palindromes!
Finding length-7 palindromes of the form F(x) = x^2 (using K = 2) 
Processing suffix 90
Finished suffix 90 in 0.001006s
Finished finding length-7 palindromes of the form F(x) = x^2 (K = 2) in 0.001044s 

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 :
cmd /c "C:\CUDApalin\2022-11-14-cudapalin.exe 1 0 0 48 0 2>&1" | tee "C:\CUDApalin\outputcp.txt" -append

As always, once you get this gobbledygook right once, it's smooth sailing. Next is a screencopy of what I used for the last suffix 99 for length-67 squares :

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 ParticipantType of Card#CUDAcoresReserved 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 ParticipantType of Card#CUDAcoresReserved suffix(es)Results, dates, comments, etc.
Patrick De GeestGeForce 409016384[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 GeestGeForce 409016384from [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 GeestGeForce 409016384from [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 GeestGeForce 409016384from [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 GeestGeForce 409016384from [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 -- 

















[up TOP OF PAGE]


( © All rights reserved ) - Last modified : September 5, 2024.

Patrick De Geest - Belgium flag - Short Bio - Some Pictures
E-mail address : pdg@worldofnumbers.com