| Amine Moulay Ramdane <aminer68@gmail.com>: Apr 26 03:06PM -0700 Hello, Read again, i correct about more of my philosophy about creativity and innovation.. I am a white arab, and i think i am smart since i have also invented many scalable algorithms and algorithms.. I have just talked before about the importance of the following statement in business: "The focus should be on the product, since if the product is good the profits will follow" But notice that it is saying that if the product is good than the profits will follow, so as you are noticing we have to define what is a good product ? and does a good product only comes from science or from engineering? not at all !, since the product can become good by the process of creativity, and then we have to define creativity, and creativity needs globalization, since creativity and innovation come from ideas circulating and combining across nations and industries, and i invite you to read about what is creativity in the following interesting web page from Yale university: What Is Creativity? https://insights.som.yale.edu/insights/what-is-creativity So now you are understanding that creativity needs globalization , and read all my following thoughts so that to understand correctly: More of my philosophy about egoism and competition and collaboration and cooperation.. I invite you to look at the following video: Why is Communism So Appealing? https://www.youtube.com/watch?v=Q_0UAsaqaOc I am not a communist, my political philosophy is different, and i think my philosophy is better, and i am explaining it in my below thoughts, i think that the philosophy of the philosopher and economist Adam Smith was lacking on efficiency, since he said that "Human egoism is the engine of the properity and happiness of nations" and i think it is not true, simply because creativity and innovation come not only from competition and its egoism, but they also come from ideas circulating and combining across nations and industries(so they need globalization), but egoism of competition is too much extremism that hurts because it has also the tendency to make ideas not circulating and combining efficiently across nations and industries, so my philosophy says that we have to seek like a balance between competition and collaboration or cooperation, and this needs also collaboration and cooperation by sharing ideas and sharing knowledge and sharing PhD papers and sharing open source softwares etc. and here is my new philosophy and model, read it carefully in my following thoughts: More philosophy about the Scottish and economist and philosopher called Adam Smith.. I invite you to look at the following video about Adam Smith: ADAM SMITH - La main invisible https://www.youtube.com/watch?v=OIvtWvDkkVk You can read about Adam Smith here: https://en.wikipedia.org/wiki/Adam_Smith I think that i am a philosopher that is smart, and i say that the philosopher and economist Adam Smith was not right by saying the following(you can listen to it in the above video): "Human egoism is the engine of the properity and happiness of nations" I think that Adam Smith is not right by saying so, since my new philosophy and model says that you have to seek like a balance between collaboration or cooperation and competition(and egoism comes from competition), my philosophy says that innovation and creativity not only come from competition but it also come from ideas circulating and combining across nations and industries(so they need globalization), so in my philosophy creativity and innovation needs also collaboration and cooperation by sharing ideas and sharing knowledge and sharing PhD papers and sharing open source softwares etc. and here is my new philosophy and model: My today talk is about white supremacism and neo-nazism and the far-right and nationalism. So the first philosophical question is how to talk about those above ideologies? I think that it is also like a Mensa IQ test, so since i think i am smart, i have to use my smartness to solve the Mensa IQ test, so when you are smart, so how can you solve the problem(that is like a Mensa IQ test) of those above ideologies ? i think that i have first to detect the important pattern with my fluid intelligence, and i have to see clearly the pattern(like for example getting into the details from the abstraction of the pattern), and the important pattern is the following: Notice that it is like an optimization problem of artificial intelligence that looks like PSO(Particle Swarm Optimization), it is what we call Swarm intelligence, and in PSO(Particle Swarm Optimization) there is what we call local optimization that we call exploitation, and there is what we call global optimization that we call exploration(read about PSO in my thoughts below so that to understand), so if PSO is not balanced correctly with exploitation and exploration it can not converge to the global optimum, we say that PSO has to guarantee the optimal convergence, so if it is not correctly balanced with both exploitation and exploration it can get stuck in a local maximum and not to converge to global optimum, so then notice that with logical analogy, exploration and exploitation of PSO(Particle Swarm Optimization) is in philosophy like seeking the right balance between individualism and collectivism that guarantees the optimal convergence like in PSO, or it is like seeking the right balance between collaboration and competition that guarantees the optimal convergence like in PSO, so then since the above ideologies are nationalism and nationalism is too much local optimization and lack of global optimization , it is too much competition and lack of collaboration or cooperation, so it is by logical analogy like too much exploitation and lack of exploration in PSO, so this is not good and here is how to notice it , read the following: Read the following article about economic nationalism: Rise of Economic Nationalism and Its Implications https://www.lewisu.edu/experts/wordpress/index.php/rise-of-economic-nationalism-and-its-implications/ Notice that it says the following: "Countries benefit with cooperation between countries to mutual benefit, becoming too nationalistic at the expense of its partners is counterproductive. It is an approach that creates conflict. Being more nationalistic tends to be a zero sum game in an increasingly interdependent world economy, where countries depend on other countries for their economic and political and national security well being. When companies cooperate, they can become more competitive. When they are more competitive, they hire more workers, pay higher salaries, and otherwise contribute to economic growth. Economic nationalism is a bad policy." So a you are noticing that nationalism is not the right way to do. This is why i also said the following: More political philosophy about globalization and nationalism.. I am a white arab and i think i am more smart, so today i will talk about a very important subject about Globalization and nationalism, so i will invite you to look at the following video of Marine Le Pen of the far-right political party in France: Marine Le Pen explains why nationalism is important https://www.youtube.com/watch?v=fNpI9wKnE8Q As you notice that Marine Le Pen is saying in french that the fight today is between nationalism and globalization, since Marine Le Pen says that globalization is a treat to national identity and is a treat to national sovereignty, but i think that Marine Le Pen is not understanding correctly globalization, since i think that nationalism is too much competition and communism and socialism is too much collaboration , so i think the best way is to seek like a balance between collaboration and competition and when we look at globalization you will notice that we are collaborating with others by for example sharing Open Source softwares or Free softwares or PhD papers or knowledge on internet etc, and we are also competition by not collaborating with others, and with this new kind of model we are noticing that we are not just one identity like being french, but we are becoming multiple identities because this kind of new model is making a part of us that collaborate "universal", and this is why i think that Marine Le Pen is not understanding correctly this new kind of model of like seeking a balance between competition and collaboration , and i think that this new model is better because it is more efficient , because i think this partly collaboration of this new model is good and more efficient for creativity, innovation, adaptability and speed of progress, i also think in capitalism the price of internet has gotten cheap and the price of computers has gotten cheap, so we are able today to access internet with a low price and benefit from "collaboration" and also sharing in internet, for example look at me, i have invented many scalable algorithms and i have decided to share some of them with the others, and it is of course collaboration , so look for example at my following inventions of scalable algorithms that i have shared with others, here they are: https://sites.google.com/site/scalable68/scalable-mlock https://sites.google.com/site/scalable68/scalable-reference-counting-with-efficient-support-for-weak-references https://sites.google.com/site/scalable68/scalable-rwlock https://sites.google.com/site/scalable68/scalable-rwlock-that-works-accross-processes-and-threads https://groups.google.com/forum/#!topic/comp.programming.threads/VaOo1WVACgs https://sites.google.com/site/scalable68/an-efficient-threadpool-engine-with-priorities-that-scales-very-well Also i have decided to not share others of my scalable algorithms and it is competition, so i am seeking like a balance between collaboration and competition. More philosophy about what is artificial intelligence and more.. I am a white arab, and i think i am smart since i have also invented many scalable algorithms and algorithms, and when you are smart you will easily understand artificial intelligence, this is why i am finding artificial intelligence easy to learn, i think to be able to understand artificial intelligence you have to understand reasoning with energy minimization, like with PSO(Particle Swarm Optimization), but you have to be smart since the Population based algorithm has to guarantee the optimal convergence, and this is why i am learning you how to do it(read below), i think that GA(genetic algorithm) is good for teaching it, but GA(genetic algorithm) doesn't guarantee the optimal convergence, and after learning how to do reasoning with energy minimization in artificial intelligence, you have to understand what is transfer learning in artificial intelligence with PathNet or such, this transfer learning permits to train faster and require less labeled data, also PathNET is much more powerful since also it is higher level abstraction in artificial intelligence.. Read about it here: https://mattturck.com/frontierai/ And read about PathNet here: https://medium.com/@thoszymkowiak/deepmind-just-published-a-mind-blowing-paper-pathnet-f72b1ed38d46 More about artificial intelligence.. I think one of the most important part in artificial intelligence is reasoning with energy minimization, it is the one that i am working on right now, see the following video to understand more about it: Yann LeCun: Can Neural Networks Reason? https://www.youtube.com/watch?v=YAfwNEY826I&t=250s I think that since i have just understood much more artificial intelligence, i will soon show you my next Open source software project that implement a powerful Parallel Linear programming solver and a powerful Parallel Mixed-integer programming solver with Artificial intelligence using PSO, and i will write an article that explain much more artificial intelligence and what is smartness and what is consciousness and self-awareness.. And in only one day i have just learned "much" more artificial intelligence, i have read the following article about Particle Swarm Optimization and i have understood it: Artificial Intelligence - Particle Swarm Optimization https://docs.microsoft.com/en-us/archive/msdn-magazine/2011/august/artificial-intelligence-particle-swarm-optimization But i have just noticed that the above implementation doesn't guarantee the optimal convergence. So here is how to guarantee the optimal convergence in PSO: Clerc and Kennedy in (Trelea 2003) propose a constriction coefficient parameter selection guidelines in order to guarantee the optimal convergence, here is how to do it with PSO: v(t+1) = k*[(v(t) + (c1 * r1 * (p(t) – x(t)) + (c2 * r2 * (g(t) – x(t))] x(t+1) = x(t) + v(t+1) constriction coefficient parameter is: k = 2/abs(2-phi-sqrt(phi^2-(4*phi))) k:=2/abs((2-4.1)-(0.640)) = 0.729 phi = c1 + c2 To guarantee the optimal convergence use: c1 = c2 = 2.05 phi = 4.1 => k equal to 0.729 w=0.7298 Population size = 60; Also i have noticed that GA(genetic algorithm) doesn't guarantee the optimal convergence, and SA(Simulated annealing) and Hill Climbing are much less powerful since they perform only exploitation. In general, any metaheuristic should perform two main searching capabilities (Exploration and Exploitation). Population based algorithms ( or many solutions ) such as GA, PSO, ACO, or ABC, performs both Exploration and Exploitation, while Single-Based Algorithm such as SA(Simulated annealing), Hill Climbing, performs the exploitation only. In this case, more exploitation and less exploration increases the chances for trapping in local optima. Because the algorithm does not have the ability to search in another position far from the current best solution ( which is Exploration). Simulated annealing starts in one valley and typically ends in the lowest point of the same valley. Whereas swarms start in many different places of the mountain range and are searching for the lowest point in many valleys simultaneously. And in my next Open source software project i will implement a powerful Parallel Linear programming solver and a powerful Parallel Mixed-integer programming solver with Artificial intelligence using PSO. Thank you, Amine Moulay Ramdane. |
| Amine Moulay Ramdane <aminer68@gmail.com>: Apr 26 02:57PM -0700 Hello, More of my philosophy about creativity and innovation.. I am a white arab, and i think i am smart since i have also invented many scalable algorithms and algorithms.. I have just talked before about the importance of the following statement in business: "The focus should be on the product, since if the product is good the profits will follow" But notice that it is saying that if the product is good than the profits will follow, so as you are noticing we have to define what is a good product ? and does a good product only comes from science or from engineering? not at all !, since the product can become good by the process of creativity, and then we have to define creativity, and creativity needs globalization, since creativity and innovation come from ideas circulating and combining across nations and industries, and i invite you to read about what is creativity in the following interesting web page from Yale university: What Is Creativity? https://insights.som.yale.edu/insights/what-is-creativity So now you are understanding that creativity needs globalization , and read all my folloing thoughts so that to understand correctly: More of my philosophy about egoism and competition and collaboration and cooperation.. I invite you to look at the following video: Why is Communism So Appealing? https://www.youtube.com/watch?v=Q_0UAsaqaOc I am not a communist, my political philosophy is different, and i think my philosophy is better, and i am explaining it in my below thoughts, i think that the philosophy of the philosopher and economist Adam Smith was lacking on efficiency, since he said that "Human egoism is the engine of the properity and happiness of nations" and i think it is not true, simply because creativity and innovation come not only from competition and its egoism, but they also come from ideas circulating and combining across nations and industries(so they need globalization), but egoism of competition is too much extremism that hurts because it has also the tendency to make ideas not circulating and combining efficiently across nations and industries, so my philosophy says that we have to seek like a balance between competition and collaboration or cooperation, and this needs also collaboration and cooperation by sharing ideas and sharing knowledge and sharing PhD papers and sharing open source softwares etc. and here is my new philosophy and model, read it carefully in my following thoughts: More philosophy about the Scottish and economist and philosopher called Adam Smith.. I invite you to look at the following video about Adam Smith: ADAM SMITH - La main invisible https://www.youtube.com/watch?v=OIvtWvDkkVk You can read about Adam Smith here: https://en.wikipedia.org/wiki/Adam_Smith I think that i am a philosopher that is smart, and i say that the philosopher and economist Adam Smith was not right by saying the following(you can listen to it in the above video): "Human egoism is the engine of the properity and happiness of nations" I think that Adam Smith is not right by saying so, since my new philosophy and model says that you have to seek like a balance between collaboration or cooperation and competition(and egoism comes from competition), my philosophy says that innovation and creativity not only come from competition but it also come from ideas circulating and combining across nations and industries(so they need globalization), so in my philosophy creativity and innovation needs also collaboration and cooperation by sharing ideas and sharing knowledge and sharing PhD papers and sharing open source softwares etc. and here is my new philosophy and model: My today talk is about white supremacism and neo-nazism and the far-right and nationalism. So the first philosophical question is how to talk about those above ideologies? I think that it is also like a Mensa IQ test, so since i think i am smart, i have to use my smartness to solve the Mensa IQ test, so when you are smart, so how can you solve the problem(that is like a Mensa IQ test) of those above ideologies ? i think that i have first to detect the important pattern with my fluid intelligence, and i have to see clearly the pattern(like for example getting into the details from the abstraction of the pattern), and the important pattern is the following: Notice that it is like an optimization problem of artificial intelligence that looks like PSO(Particle Swarm Optimization), it is what we call Swarm intelligence, and in PSO(Particle Swarm Optimization) there is what we call local optimization that we call exploitation, and there is what we call global optimization that we call exploration(read about PSO in my thoughts below so that to understand), so if PSO is not balanced correctly with exploitation and exploration it can not converge to the global optimum, we say that PSO has to guarantee the optimal convergence, so if it is not correctly balanced with both exploitation and exploration it can get stuck in a local maximum and not to converge to global optimum, so then notice that with logical analogy, exploration and exploitation of PSO(Particle Swarm Optimization) is in philosophy like seeking the right balance between individualism and collectivism that guarantees the optimal convergence like in PSO, or it is like seeking the right balance between collaboration and competition that guarantees the optimal convergence like in PSO, so then since the above ideologies are nationalism and nationalism is too much local optimization and lack of global optimization , it is too much competition and lack of collaboration or cooperation, so it is by logical analogy like too much exploitation and lack of exploration in PSO, so this is not good and here is how to notice it , read the following: Read the following article about economic nationalism: Rise of Economic Nationalism and Its Implications https://www.lewisu.edu/experts/wordpress/index.php/rise-of-economic-nationalism-and-its-implications/ Notice that it says the following: "Countries benefit with cooperation between countries to mutual benefit, becoming too nationalistic at the expense of its partners is counterproductive. It is an approach that creates conflict. Being more nationalistic tends to be a zero sum game in an increasingly interdependent world economy, where countries depend on other countries for their economic and political and national security well being. When companies cooperate, they can become more competitive. When they are more competitive, they hire more workers, pay higher salaries, and otherwise contribute to economic growth. Economic nationalism is a bad policy." So a you are noticing that nationalism is not the right way to do. This is why i also said the following: More political philosophy about globalization and nationalism.. I am a white arab and i think i am more smart, so today i will talk about a very important subject about Globalization and nationalism, so i will invite you to look at the following video of Marine Le Pen of the far-right political party in France: Marine Le Pen explains why nationalism is important https://www.youtube.com/watch?v=fNpI9wKnE8Q As you notice that Marine Le Pen is saying in french that the fight today is between nationalism and globalization, since Marine Le Pen says that globalization is a treat to national identity and is a treat to national sovereignty, but i think that Marine Le Pen is not understanding correctly globalization, since i think that nationalism is too much competition and communism and socialism is too much collaboration , so i think the best way is to seek like a balance between collaboration and competition and when we look at globalization you will notice that we are collaborating with others by for example sharing Open Source softwares or Free softwares or PhD papers or knowledge on internet etc, and we are also competition by not collaborating with others, and with this new kind of model we are noticing that we are not just one identity like being french, but we are becoming multiple identities because this kind of new model is making a part of us that collaborate "universal", and this is why i think that Marine Le Pen is not understanding correctly this new kind of model of like seeking a balance between competition and collaboration , and i think that this new model is better because it is more efficient , because i think this partly collaboration of this new model is good and more efficient for creativity, innovation, adaptability and speed of progress, i also think in capitalism the price of internet has gotten cheap and the price of computers has gotten cheap, so we are able today to access internet with a low price and benefit from "collaboration" and also sharing in internet, for example look at me, i have invented many scalable algorithms and i have decided to share some of them with the others, and it is of course collaboration , so look for example at my following inventions of scalable algorithms that i have shared with others, here they are: https://sites.google.com/site/scalable68/scalable-mlock https://sites.google.com/site/scalable68/scalable-reference-counting-with-efficient-support-for-weak-references https://sites.google.com/site/scalable68/scalable-rwlock https://sites.google.com/site/scalable68/scalable-rwlock-that-works-accross-processes-and-threads https://groups.google.com/forum/#!topic/comp.programming.threads/VaOo1WVACgs https://sites.google.com/site/scalable68/an-efficient-threadpool-engine-with-priorities-that-scales-very-well Also i have decided to not share others of my scalable algorithms and it is competition, so i am seeking like a balance between collaboration and competition. More philosophy about what is artificial intelligence and more.. I am a white arab, and i think i am smart since i have also invented many scalable algorithms and algorithms, and when you are smart you will easily understand artificial intelligence, this is why i am finding artificial intelligence easy to learn, i think to be able to understand artificial intelligence you have to understand reasoning with energy minimization, like with PSO(Particle Swarm Optimization), but you have to be smart since the Population based algorithm has to guarantee the optimal convergence, and this is why i am learning you how to do it(read below), i think that GA(genetic algorithm) is good for teaching it, but GA(genetic algorithm) doesn't guarantee the optimal convergence, and after learning how to do reasoning with energy minimization in artificial intelligence, you have to understand what is transfer learning in artificial intelligence with PathNet or such, this transfer learning permits to train faster and require less labeled data, also PathNET is much more powerful since also it is higher level abstraction in artificial intelligence.. Read about it here: https://mattturck.com/frontierai/ And read about PathNet here: https://medium.com/@thoszymkowiak/deepmind-just-published-a-mind-blowing-paper-pathnet-f72b1ed38d46 More about artificial intelligence.. I think one of the most important part in artificial intelligence is reasoning with energy minimization, it is the one that i am working on right now, see the following video to understand more about it: Yann LeCun: Can Neural Networks Reason? https://www.youtube.com/watch?v=YAfwNEY826I&t=250s I think that since i have just understood much more artificial intelligence, i will soon show you my next Open source software project that implement a powerful Parallel Linear programming solver and a powerful Parallel Mixed-integer programming solver with Artificial intelligence using PSO, and i will write an article that explain much more artificial intelligence and what is smartness and what is consciousness and self-awareness.. And in only one day i have just learned "much" more artificial intelligence, i have read the following article about Particle Swarm Optimization and i have understood it: Artificial Intelligence - Particle Swarm Optimization https://docs.microsoft.com/en-us/archive/msdn-magazine/2011/august/artificial-intelligence-particle-swarm-optimization But i have just noticed that the above implementation doesn't guarantee the optimal convergence. So here is how to guarantee the optimal convergence in PSO: Clerc and Kennedy in (Trelea 2003) propose a constriction coefficient parameter selection guidelines in order to guarantee the optimal convergence, here is how to do it with PSO: v(t+1) = k*[(v(t) + (c1 * r1 * (p(t) – x(t)) + (c2 * r2 * (g(t) – x(t))] x(t+1) = x(t) + v(t+1) constriction coefficient parameter is: k = 2/abs(2-phi-sqrt(phi^2-(4*phi))) k:=2/abs((2-4.1)-(0.640)) = 0.729 phi = c1 + c2 To guarantee the optimal convergence use: c1 = c2 = 2.05 phi = 4.1 => k equal to 0.729 w=0.7298 Population size = 60; Also i have noticed that GA(genetic algorithm) doesn't guarantee the optimal convergence, and SA(Simulated annealing) and Hill Climbing are much less powerful since they perform only exploitation. In general, any metaheuristic should perform two main searching capabilities (Exploration and Exploitation). Population based algorithms ( or many solutions ) such as GA, PSO, ACO, or ABC, performs both Exploration and Exploitation, while Single-Based Algorithm such as SA(Simulated annealing), Hill Climbing, performs the exploitation only. In this case, more exploitation and less exploration increases the chances for trapping in local optima. Because the algorithm does not have the ability to search in another position far from the current best solution ( which is Exploration). Simulated annealing starts in one valley and typically ends in the lowest point of the same valley. Whereas swarms start in many different places of the mountain range and are searching for the lowest point in many valleys simultaneously. And in my next Open source software project i will implement a powerful Parallel Linear programming solver and a powerful Parallel Mixed-integer programming solver with Artificial intelligence using PSO. Thank you, Amine Moulay Ramdane. |
| Amine Moulay Ramdane <aminer68@gmail.com>: Apr 26 01:20PM -0700 Hello... More philosophy about the product and about the profit.. I am a white arab, and i think i am smart since i have also invented many scalable algorithms and algorithms.. I invite you to look carefully at the following very interesting video and notice the why it says: "The focus should be on the product, since if the product is good the profits will follow" https://www.youtube.com/watch?v=BEbVddOm2X8 I am also a white arab that has a university level Diploma in Microelectronics and informatics and i have studied mathematics and operational research, read more about me in my following thoughts: More about WaitAny() and WaitAll() and more.. I am a white arab, and i think i am smart since i have also invented many scalable algorithms and algorithms.. Look at the following concurrency abstractions of Microsoft: https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.waitany?view=netframework-4.8 https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.waitall?view=netframework-4.8 They look like the following WaitForAny() and WaitForAll() of Delphi, here they are: http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Threading.TTask.WaitForAny http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Threading.TTask.WaitForAll So the WaitForAll() is easy and i have implemented it in my Threadpool engine that scales very well and that i have invented, you can read my html tutorial inside The zip file of it to know how to do it, you can download it from my website here: https://sites.google.com/site/scalable68/an-efficient-threadpool-engine-with-priorities-that-scales-very-well And about the WaitForAny(), you can also do it using my SemaMonitor, and i will soon give you an example of how to do it, and you can download my SemaMonitor invention from my website here: https://sites.google.com/site/scalable68/semacondvar-semamonitor Here is my other just new software inventions.. I have just looked at the source code of the following multiplatform pevents https://github.com/neosmart/pevents And notice that the WaitForMultipleEvents() is implemented with pthread but it is not scalable on multicores. So i have just invented a WaitForMultipleObjects() that looks like the Windows WaitForMultipleObjects() and that is fully "scalable" on multicores and that works on Windows and Linux and MacOSX and that is blocking when waiting for the objects as WaitForMultipleObjects(), so it doesn't consume CPU cycles when waiting and it works with events and futures and tasks. Here is my other just new software inventions.. I have just invented a fully "scalable" on multicores latch and a fully scalable on multicores thread barrier, they are really powerful. Read about the latches and thread barriers that are not scalable on multicores of C++ here: https://www.modernescpp.com/index.php/latches-and-barriers Here is my other software inventions: More about my scalable math Linear System Solver Library... As you have just noticed i have just spoken about my Linear System Solver Library(read below), right now it scales very well, but i will soon make it "fully" scalable on multicores using one of my scalable algorithm that i have invented and i will extend it much more to also support efficient scalable on multicores matrix operations and more, and since it will come with one of my scalable algorithms that i have invented, i think i will sell it too. More about mathematics and about scalable Linear System Solver Libraries and more.. I have just noticed that a software architect from Austria called Michael Rabatscher has designed and implemented MrMath Library that is also a parallelized Library: Here he is: https://at.linkedin.com/in/michael-rabatscher-6821702b And here is his MrMath Library for Delphi and Freepascal: https://github.com/mikerabat/mrmath But i think that he is not so smart, and i think i am smart like a genius and i say that his MrMath Library is not scalable on multicores, and notice that the Linear System Solver of his MrMath Library is not scalable on multicores too, and notice that the threaded matrix operations of his Library are not scalable on multicores too, this is why i have invented a scalable on multicores Conjugate Gradient Linear System Solver Library for C++ and Delphi and Freepascal, and here it is, read about it in my following thoughts(also i will soon extend more my Library to support scalable matrix operations): About SOR and Conjugate gradient mathematical methods.. I have just looked at SOR(Successive Overrelaxation Method), and i think it is much less powerful than Conjugate gradient method, read the following to notice it: COMPARATIVE PERFORMANCE OF THE CONJUGATE GRADIENT AND SOR METHODS FOR COMPUTATIONAL THERMAL HYDRAULICS https://inis.iaea.org/collection/NCLCollectionStore/_Public/19/055/19055644.pdf?r=1&r=1 This is why i have implemented in both C++ and Delphi my Parallel Conjugate Gradient Linear System Solver Library that scales very well, read my following thoughts about it to understand more: About the convergence properties of the conjugate gradient method The conjugate gradient method can theoretically be viewed as a direct method, as it produces the exact solution after a finite number of iterations, which is not larger than the size of the matrix, in the absence of round-off error. However, the conjugate gradient method is unstable with respect to even small perturbations, e.g., most directions are not in practice conjugate, and the exact solution is never obtained. Fortunately, the conjugate gradient method can be used as an iterative method as it provides monotonically improving approximations to the exact solution, which may reach the required tolerance after a relatively small (compared to the problem size) number of iterations. The improvement is typically linear and its speed is determined by the condition number κ(A) of the system matrix A: the larger is κ(A), the slower the improvement. Read more here: http://pages.stat.wisc.edu/~wahba/stat860public/pdf1/cj.pdf So i think my Conjugate Gradient Linear System Solver Library that scales very well is still very useful, read about it in my writing below: Read the following interesting news: The finite element method finds its place in games Read more here: https://translate.google.com/translate?hl=en&sl=auto&tl=en&u=https%3A%2F%2Fhpc.developpez.com%2Factu%2F288260%2FLa-methode-des-elements-finis-trouve-sa-place-dans-les-jeux-AMD-propose-la-bibliotheque-FEMFX-pour-une-simulation-en-temps-reel-des-deformations%2F But you have to be aware that finite element method uses Conjugate Gradient Method for Solution of Finite Element Problems, read here to notice it: Conjugate Gradient Method for Solution of Large Finite Element Problems on CPU and GPU https://pdfs.semanticscholar.org/1f4c/f080ee622aa02623b35eda947fbc169b199d.pdf This is why i have also designed and implemented my Parallel Conjugate Gradient Linear System Solver library that scales very well, here it is: My Parallel C++ Conjugate Gradient Linear System Solver Library that scales very well version 1.76 is here.. Author: Amine Moulay Ramdane Description: This library contains a Parallel implementation of Conjugate Gradient Dense Linear System Solver library that is NUMA-aware and cache-aware that scales very well, and it contains also a Parallel implementation of Conjugate Gradient Sparse Linear System Solver library that is cache-aware that scales very well. Sparse linear system solvers are ubiquitous in high performance computing (HPC) and often are the most computational intensive parts in scientific computing codes. A few of the many applications relying on sparse linear solvers include fusion energy simulation, space weather simulation, climate modeling, and environmental modeling, and finite element method, and large-scale reservoir simulations to enhance oil recovery by the oil and gas industry. Conjugate Gradient is known to converge to the exact solution in n steps for a matrix of size n, and was historically first seen as a direct method because of this. However, after a while people figured out that it works really well if you just stop the iteration much earlier - often you will get a very good approximation after much fewer than n steps. In fact, we can analyze how fast Conjugate gradient converges. The end result is that Conjugate gradient is used as an iterative method for large linear systems today. Please download the zip file and read the readme file inside the zip to know how to use it. You can download it from: https://sites.google.com/site/scalable68/scalable-parallel-c-conjugate-gradient-linear-system-solver-library Language: GNU C++ and Visual C++ and C++Builder Operating Systems: Windows, Linux, Unix and Mac OS X on (x86) -- Thread Barrier for Delphi and Freepascal version 1.0 is here.. I have added my condition variable implementation and my scalable Lock called scalable MLock that both work with both Windows and Linux and i have made the Thread Barrier work with both Windows and Linux, and now you can pass a parameter to the constructor of the Thread Barrier as ctMutex to use a Mutex or ctMLock to use a scalable Lock called MLock or ctCriticalSection to use a Crital Section. You can download it from my website here: https://sites.google.com/site/scalable68/thread-barrier-for-delphi-and-freepascal Yet more precision about my inventions that are my SemaMonitor and SemaCondvar and my Monitor.. My inventions that are my SemaMonitor and SemaCondvar are fast pathed when the count of my SemaMonitor or my SemaCondvar is greater than 0, so in this case the wait() method stays on the user mode and it doesn't switch from user mode to kernel mode that costs around 1500 CPU cycles and that is expensive, the signal() method is also fast pathed when there is no item in the queue and count is less than MaximumCount, read here about what is the cost (in CPU cycles) to switch between windows user mode and kernel mode: https://stackoverflow.com/questions/1368061/whats-the-cost-in-cycles-to-switch-between-windows-kernel-and-user-mode#:~:text=1%20Answer&text=Switching%20from%20%E2%80%9Cuser%20mode%E2%80%9D%20to,rest%20is%20%22kernel%20overhead%22. You can read about and download my inventions of SemaMonitor and SemaCondvar from here: https://sites.google.com/site/scalable68/semacondvar-semamonitor And the light weight version is here: https://sites.google.com/site/scalable68/light-weight-semacondvar-semamonitor And i have implemented an efficient Monitor over my SemaCondvar. Here is the description of my efficient Monitor inside the Monitor.pas file that you will find inside the zip file: Description: This is my implementation of a Monitor over my SemaCondvar. You will find the Monitor class inside the Monitor.pas file inside the zip file. When you set the first parameter of the constructor to true, the signal will not be lost if the threads are not waiting with wait() method, but when you set the first parameter of the construtor to false, if the threads are not waiting with the wait() method, the signal will be lost.. Second parameter of the constructor is the kind of Lock, you can set it to ctMLock to use my scalable node based lock called MLock, or you can set it to ctMutex to use a Mutex or you can set it to ctCriticalSection to use the TCriticalSection. Here is the methods of my efficient Monitor that i have implemented: TMonitor = class private cache0:typecache0; lock1:TSyncLock; obj:TSemaCondvar; cache1:typecache0; public constructor Create(bool:boolean=true;lock:TMyLocks=ctMLock); destructor Destroy; override; procedure Enter(); procedure Leave(); function Signal():boolean;overload; function Signal(nbr:long;var remains:long):boolean;overload; procedure Signal_All(); function Wait(const AMilliseconds:longword=INFINITE): boolean; function WaitersBlocked():long; end; The wait() method is for the threads to wait on the Monitor object for the signal to be signaled. If wait() fails, that can be that the number of waiters is greater than high(longword). And the signal() method will signal one time a waiting thread on the Monitor object, but if signal() fails , the returned value is false. the signal_all() method will signal all the waiting threads on the Monitor object. The signal(nbr:long;var remains:long) method will signal nbr of waiting threads, but if signal() fails, the remaining number of signals that were not signaled will be returned in the remains variable. and WaitersBlocked() will return the number of waiting threads on the Monitor object. and Enter() and Leave() methods to enter and leave the monitor's Lock. You can download the zip files from: https://sites.google.com/site/scalable68/semacondvar-semamonitor and the lightweight version is here: https://sites.google.com/site/scalable68/light-weight-semacondvar-semamonitor More about my powerful inventions of scalable reference counting algorithm and of my scalable algorithms.. I invite you to read the following web page: Why is memory reclamation so important? https://concurrencyfreaks.blogspot.com/search?q=resilience+and+urcu Notice that it is saying the following about RCU: "Reason number 4, resilience Another reason to go with lock-free/wait-free data structures is because they are resilient to failures. On a shared memory system with multiples processes accessing the same data structure, even if one of the processes dies, the others will be able to progress in their work. This is the true gem of lock-free data structures: progress in the presence of failure. Blocking data structures (typically) do not have this property (there are exceptions though). If we add a blocking memory reclamation (like URCU) to a lock-free/wait-free data structure, we are loosing this resilience because one dead process will prevent further memory reclamation and eventually bring down the whole system. There goes the resilience advantage out the window." So i think that RCU can not be used as reference counting, since it is blocking on the writer side, so it is not resilient to failures since it is not lock-free on the writer side. So this is why i have invented my powerful Scalable reference counting with efficient support for weak references that is lock-free for its scalable reference counting, and here it is: https://sites.google.com/site/scalable68/scalable-reference-counting-with-efficient-support-for-weak-references And my scalable reference counting algorithm is of the SCU(0,1) Class of Algorithms, so under scheduling conditions which approximate those found in commercial hardware architectures, it becomes wait-free with a system latency of time O(sqrt(k)) and with an individual latency of O(k*sqrt(k)), and k number of threads. The proof is here on the following PhD paper: https://arxiv.org/pdf/1311.3200.pdf This paper suggests a simple solution to this problem. We show that, for a large class of lock- free algorithms, under scheduling conditions which approximate those found in commercial hardware architectures, lock-free algorithms behave as if they are wait-free. In other words, programmers can keep on designing simple lock-free algorithms instead of complex wait-free ones, and in practice, they will get wait-free progress. It says on the Analysis of the Class SCU(q, s): "Given an algorithm in SCU(q, s) on k correct processes under a uniform stochastic scheduler, the system latency is O(q + s*sqrt(k), and the individual latency is O(k(q + s*sqrt(k))." More precision about my new inventions of scalable algorithms.. |
| You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page. To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com. |
No comments:
Post a Comment