AI Email Write Up

AI Email Write Up — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Douglas Parkhill

    Douglas Parkhill

    Douglas F. Parkhill is a Canadian technologist and former research minister, best known for his pioneering work on what is now called cloud computing, and his work on Canada's Telidon videotex project. He started working at the Canadian ministry of Communications (now part of the Department of Trade and Industry) in 1969, having previously worked at the Mitre Corporation. He was responsible for many activities in communications satellites, computer communications, command and control systems and telecommunications. He was winner of the Treasury Board of Canada Secretariat's Outstanding Achievement award in 1982, the Conestoga shield for services to government and industry in computer communications research and development, the Touche Ross award for Telidon development. He was an author of several publications including the 1966 book, The Challenge of the Computer Utility. In the book, Parkhill thoroughly explored many of the modern-day characteristics of cloud computing (elastic provisioning through a utility service) as well as the comparison to the electricity industry and the use of public, private, government and community forms. The book won the McKinsey Foundation award for distinguished contributions to management literature. He worked with Dave Godfrey, the Canadian writer and novelist on a later book Gutenberg two about the social and political meaning of computer technology. He was in charge of research at the Federal Department of Communications at the time when the department was funding development of the Telidon videotext system, was heavily involved in promoting the system, and had overall control of the program. In a radio broadcast in 1980, he outlined some of the potential of the system, from financial information, to theatre reservations, with the ability to pay and print out tickets from the system. He later documented the history of the Telidon project, and the history of videotext in general. == Publications == The Challenge of the Computer Utility, Addison-Wesley, 1966, ISBN 0-201-05720-4 edited with Dave Godfrey, Gutenberg Two: The New Electronics and Social Change, Press Porcepic, 1979, ISBN 0-88878-191-1 The Beginning of a Beginning. Ottawa; Department of Communications, 1987. A history of the Telidon project.

    Read more →
  • Minion (solver)

    Minion (solver)

    Minion is a solver for satisfaction problems. Unlike constraint programming toolkits, which expect users to write programs in a traditional programming language like C++, Java or Prolog, Minion takes a text file which specifies the problem, and solves using only this. This makes using Minion much simpler, at the cost of much less customization. Minion has been shown to be faster than major commercial constraint solvers including CPLEX (formerly IBM ILOG). == Overview == Minion was introduced in 2006 by researchers at the University of St Andrews as a “fast, scalable” solver for large and hard CSP instances. The project provides a compact input language and a low-overhead C++ implementation aimed at throughput and memory efficiency. == Design and features == Minion implements a range of variable and constraint types commonly used in CSP modelling, plus search heuristics and optimisation support. The solver architecture prioritises cache-friendly data structures and specialised propagators. Notably, the developers adapted watched literal techniques from SAT solving to speed up constraint propagation for, among others, Boolean sums, the element global constraint, and table constraints. The modelling approach relies on a plain-text format (parsed by Minion) rather than embedding models into a host programming language. This reduces overhead and supports rapid “model-and-run” experimentation for large benchmark sets. == Performance == In the original evaluation on standard benchmarks, the authors reported that Minion often ran between one and two orders of magnitude faster than state-of-the-art toolkits of the time (including ILOG Solver and Gecode) on large, hard instances, with smaller gains—or slowdowns—on easier problems. Subsequent research has used Minion as a baseline solver in empirical studies and test generation tasks, reflecting its adoption within parts of the constraint programming community. == Applications == Minion has been applied in academic work on combinatorial search, scheduling and test generation, and is available to other environments via wrappers (for example, from the R language).

    Read more →
  • General Data Protection Regulation

    General Data Protection Regulation

    The General Data Protection Regulation (Regulation (EU) 2016/679), abbreviated GDPR, is a European Union regulation on information privacy in the European Union (EU) and the European Economic Area (EEA). The GDPR is an important component of EU privacy law and human rights law, in particular Article 8(1) of the Charter of Fundamental Rights of the European Union. It also governs the transfer of personal data outside the EU and EEA. The GDPR's goals are to enhance individuals' control and rights over their personal information and to simplify the regulations for international business. It supersedes the Data Protection Directive 95/46/EC and, among other things, simplifies the terminology. The European Parliament and Council of the European Union adopted the GDPR on 14 April 2016, to become effective on 25 May 2018. As an EU regulation (instead of a directive), the GDPR has direct legal effect and does not require transposition into national law. However, it also provides flexibility for individual member states to modify (derogate from) some of its provisions. As an example of the Brussels effect, the regulation became a model for many other laws around the world, including in Brazil, Japan, Singapore, South Africa, South Korea, Sri Lanka, and Thailand. After leaving the European Union, the United Kingdom enacted its "UK GDPR", identical to the GDPR. The California Consumer Privacy Act (CCPA), adopted on 28 June 2018, has many similarities with the GDPR. == Contents == The GDPR 2016 has eleven chapters, concerning general provisions, principles, rights of the data subject, duties of data controllers or processors, transfers of personal data to third-party countries, supervisory authorities, cooperation among member states, remedies, liability or penalties for breach of rights, provisions related to specific processing situations, and miscellaneous final provisions. The GDPR also contains 173 recitals purposed to clarify scope and rationale for the regulatory provisions, as well as its legislative intents – Recital 4, for instance, begins by saying that the processing of personal data should be "designed to serve mankind". === General provisions === The regulation applies if the data controller, or processor, or the data subject (person) is based in the EU. The regulation also applies to organisations based outside the EU if they collect or process personal data of individuals located inside the EU. The regulation does not apply to the processing of data by private persons provided that the purpose has no connection to a professional or commercial activity." (Recital 18). According to the European Commission, "Personal data is information that relates to an identified or identifiable individual. If you cannot directly identify an individual from that information, then you need to consider whether the individual is still identifiable. You should take into account the information you are processing together with all the means reasonably likely to be used by either you or any other person to identify that individual." The precise definitions of terms such as "personal data", "processing", "data subject", "controller", and "processor" are stated in Article 4. The regulation does not purport to apply to the processing of personal data for national security activities or law enforcement of the EU; however, industry groups concerned about facing a potential conflict of laws have questioned whether Article 48 could be invoked to seek to prevent a data controller subject to a third country's laws from complying with a legal order from that country's law enforcement, judicial, or national security authorities to disclose to such authorities the personal data of an EU person, regardless of whether the data resides in or out of the EU. Article 48 states that any judgement of a court or tribunal and any decision of an administrative authority of a third country requiring a controller or processor to transfer or disclose personal data may not be recognised or enforceable in any manner unless based on an international agreement, like a mutual legal assistance treaty in force between the requesting third (non-EU) country and the EU or a member state. The data protection reform package also includes a separate Data Protection Directive for the police and criminal justice sector that provides rules on personal data exchanges at State level, Union level, and international levels. A single set of rules applies to all EU member states. Each member state establishes an independent supervisory authority (SA) to hear and investigate complaints, sanction administrative offences, etc. SAs in each member state co-operate with other SAs, providing mutual assistance and organising joint operations. If a business has multiple establishments in the EU, it must have a single SA as its "lead authority", based on the location of its "main establishment" where the main processing activities take place. The lead authority thus acts as a "one-stop shop" to supervise all the processing activities of that business throughout the EU. A European Data Protection Board (EDPB) co-ordinates the SAs. EDPB thus replaces the Article 29 Data Protection Working Party. There are exceptions for data processed in an employment context or in national security that still might be subject to individual country regulations. === Principles and lawful purposes === Article 5 sets out six principles relating to the lawfulness of processing personal data. The first of these specifies that data must be processed lawfully, fairly and in a transparent manner. Article 6 develops this principle by specifying that personal data may not be processed unless there is at least one legal basis for doing so. The other principles refer to "purpose limitation", "data minimisation", "accuracy", "storage limitation", and "integrity and confidentiality". Article 6 states that the lawful purposes are: (a) If the data subject has given consent to the processing of his or her personal data; (b) To fulfill contractual obligations with a data subject, or for tasks at the request of a data subject who is in the process of entering into a contract; (c) To comply with a data controller's legal obligations; (d) To protect the vital interests of a data subject or another individual; (e) To perform a task in the public interest or in official authority; (f) For the legitimate interests of a data controller or a third party, unless these interests are overridden by interests of the data subject or her or his rights according to the Charter of Fundamental Rights (especially in the case of children). If informed consent is used as the lawful basis for processing, consent must have been explicit for data collected and each purpose data is used for. Consent must be a specific, freely given, plainly worded, and unambiguous affirmation given by the data subject; an online form which has consent options structured as an opt-out selected by default is a violation of the GDPR, as the consent is not unambiguously affirmed by the user. In addition, multiple types of processing may not be "bundled" together into a single affirmation prompt, as this is not specific to each use of data, and the individual permissions are not freely given. (Recital 32). Data subjects must be allowed to withdraw this consent at any time, and the process of doing so must not be harder than it was to opt in. A data controller may not refuse service to users who decline consent to processing that is not strictly necessary in order to use the service. Consent for children, defined in the regulation as being less than 16 years old (although with the option for member states to individually make it as low as 13 years old), must be given by the child's parent or custodian, and verifiable. If consent to processing was already provided under the Data Protection Directive, a data controller does not have to re-obtain consent if the processing is documented and obtained in compliance with the GDPR's requirements (Recital 171). === Rights of the data subject === ==== Transparency and modalities ==== Article 12 requires the data controller to provide information to the "data subject in a concise, transparent, intelligible and easily accessible form, using clear and plain language, in particular for any information addressed specifically to a child." ==== Information and access ==== The right of access (Article 15) is a data subject right. It gives people the right to access their personal data and information about how this personal data is being processed. A data controller must provide, upon request, an overview of the categories of data that are being processed as well as a copy of the actual data; furthermore, the data controller has to inform the data subject on details about the processing, such as the purposes of the processing, with whom the data is shared, and how it acquired the data. A data subject must be able to transfer personal data from one electro

    Read more →
  • Mike Vernal

    Mike Vernal

    Mike Vernal (born September 7, 1980) is an American business executive who is a venture capitalist at Conviction. He was previously an investor at Sequoia Capital in Silicon Valley and was one of the top executives at Facebook between 2008 and 2016. Prior to joining Sequoia Capital, he was Vice President of Search, Local, and Developer products at Facebook. == Career == Vernal joined Facebook in 2008. From 2009 to 2013, Vernal managed the Facebook Platform team and is credited with managing the Facebook Platform transition from desktop to mobile. During his time at Facebook, he served as vice president and was considered among the “top executives” who ran the company. In 2016, after eight years at Facebook, Vernal announced his plans to leave the company. In May 2016, he joined Sequoia Capital, a venture-capital firm specializing in technology startups. He is an early investor in Rippling, Clay, Notion and Statsig. In July 2023, The Information reported that Vernal was departing Sequoia. At Conviction, he has led investments in Listen Labs, OpenEvidence and Thinking Machines Lab.

    Read more →
  • PatchMatch

    PatchMatch

    PatchMatch is an algorithm used to quickly find correspondences (or matches) between small square regions (or patches) of an image. It has various applications in image editing, such as reshuffling or removing objects from images or altering their aspect ratios without cropping or noticeably stretching them. PatchMatch was first presented in a 2011 paper by researchers at Princeton University. == Algorithm == The goal of the algorithm is to find the patch correspondence by defining a nearest-neighbor field (NNF) as a function f : R 2 → R 2 {\displaystyle f:\mathbb {R} ^{2}\to \mathbb {R} ^{2}} of offsets, which is over all possible matches of patch (location of patch centers) in image A, for some distance function of two patches D {\displaystyle D} . So, for a given patch coordinate a {\displaystyle a} in image A {\displaystyle A} and its corresponding nearest neighbor b {\displaystyle b} in image B {\displaystyle B} , f ( a ) {\displaystyle f(a)} is simply b − a {\displaystyle b-a} . However, if we search for every point in image B {\displaystyle B} , the work will be too hard to complete. So the following algorithm is done in a randomized approach in order to accelerate the calculation speed. The algorithm has three main components. Initially, the nearest-neighbor field is filled with either random offsets or some prior information. Next, an iterative update process is applied to the NNF, in which good patch offsets are propagated to adjacent pixels, followed by random search in the neighborhood of the best offset found so far. Independent of these three components, the algorithm also uses a coarse-to-fine approach by building an image pyramid to obtain the better result. === Initialization === When initializing with random offsets, we use independent uniform samples across the full range of image B {\displaystyle B} . This algorithm avoids using an initial guess from the previous level of the pyramid because in this way the algorithm can avoid being trapped in local minima. === Iteration === After initialization, the algorithm attempted to perform iterative process of improving the N N F {\displaystyle NNF} . The iterations examine the offsets in scan order (from left to right, top to bottom), and each undergoes propagation followed by random search. === Propagation === We attempt to improve f ( x , y ) {\displaystyle f(x,y)} using the known offsets of f ( x − 1 , y ) {\displaystyle f(x-1,y)} and f ( x , y − 1 ) {\displaystyle f(x,y-1)} , assuming that the patch offsets are likely to be the same. That is, the algorithm will take new value for f ( x , y ) {\displaystyle f(x,y)} to be arg ⁡ min ( x , y ) D ( f ( x , y ) ) , D ( f ( x − 1 , y ) ) , D ( f ( x , y − 1 ) ) {\displaystyle \arg \min \limits _{(x,y)}{D(f(x,y)),D(f(x-1,y)),D(f(x,y-1))}} . So if f ( x , y ) {\displaystyle f(x,y)} has a correct mapping and is in a coherent region R {\displaystyle R} , then all of R {\displaystyle R} below and to the right of f ( x , y ) {\displaystyle f(x,y)} will be filled with the correct mapping. Alternatively, on even iterations, the algorithm search for different direction, fill the new value to be arg ⁡ min ( x , y ) { D ( f ( x , y ) ) , D ( f ( x + 1 , y ) ) , D ( f ( x , y + 1 ) ) } {\displaystyle \arg \min \limits _{(x,y)}\{D(f(x,y)),D(f(x+1,y)),D(f(x,y+1))\}} . === Random search === Let v 0 = f ( x , y ) {\displaystyle v_{0}=f(x,y)} , we attempt to improve f ( x , y ) {\displaystyle f(x,y)} by testing a sequence of candidate offsets at an exponentially decreasing distance from v 0 {\displaystyle v_{0}} u i = v 0 + w α i R i {\displaystyle u_{i}=v_{0}+w\alpha ^{i}R_{i}} where R i {\displaystyle R_{i}} is a uniform random in [ − 1 , 1 ] × [ − 1 , 1 ] {\displaystyle [-1,1]\times [-1,1]} , w {\displaystyle w} is a large window search radius which will be set to maximum picture size, and α {\displaystyle \alpha } is a fixed ratio often assigned as 1/2. This part of the algorithm allows the f ( x , y ) {\displaystyle f(x,y)} to jump out of local minimum through random process. === Halting criterion === The often used halting criterion is set the iteration times to be about 4~5. Even with low iteration, the algorithm works well.

    Read more →
  • Decision Model and Notation

    Decision Model and Notation

    In business analysis, the Decision Model and Notation (DMN) is a standard published by the Object Management Group. It is a standard approach for describing and modeling repeatable decisions within organizations to ensure that decision models are interchangeable across organizations. The DMN standard provides the industry with a modeling notation for decisions that will support decision management and business rules. The notation is designed to be readable by business and IT users alike. This enables various groups to effectively collaborate in defining a decision model: the business people who manage and monitor the decisions, the business analysts or functional analysts who document the initial decision requirements and specify the detailed decision models and decision logic, the technical developers responsible for the automation of systems that make the decisions. The primary goal of DMN is to offer a common notation that all business users can easily understand. This includes business analysts who develop decision requirements and models, technical developers who automate decisions, and businesspeople who manage and monitor those decisions. DMN serves as a standardized link between business decision design and implementation.[4] The DMN standard can be effectively used standalone but it is also complementary to the BPMN and CMMN standards. BPMN defines a special kind of activity, the Business Rule Task, which "provides a mechanism for the process to provide input to a business rule engine and to get the output of calculations that the business rule engine might provide" that can be used to show where in a BPMN process a decision defined using DMN should be used. DMN has been made a standard for Business Analysis according to BABOK v3. == Elements of the standard == The standard includes three main elements Decision Requirements Diagrams that show how the elements of decision-making are linked into a dependency network. Decision tables to represent how each decision in such a network can be made. Business context for decisions such as the roles of organizations or the impact on performance metrics. A Friendly Enough Expression Language (FEEL) that can be used to evaluate expressions in a decision table and other logic formats. == Use cases == The standard identifies three main use cases for DMN Defining manual decision making Specifying the requirements for automated decision-making Representing a complete, executable model of decision-making == Benefits == Using the DMN standard will improve business analysis and business process management, since other popular requirement management techniques such as BPMN and UML do not handle decision making growth of projects using business rule management systems or BRMS, which allow faster changes it facilitates better communications between business, IT and analytic roles in a company it provides an effective requirements modeling approach for predictive analytics projects and fulfills the need for "business understanding" in methodologies for advanced analytics such as CRISP-DM it provides a standard notation for decision tables, the most common style of business rules in a business rule management system (BRMS) == Relationship to BPMN == DMN has been designed to work with BPMN. Business process models can be simplified by moving process logic into decision services. DMN is a separate domain within the OMG that provides an explicit way to connect to processes in BPMN. Decisions in DMN can be explicitly linked to processes and tasks that use the decisions. This integration of DMN and BPMN has been studied extensively. DMN expects that the logic of a decision will be deployed as a stateless, side-effect free Decision Service. Such a service can be invoked from a business process and the data in the process can be mapped to the inputs and outputs of the decision service. == DMN BPMN example == As mentioned, BPMN is a related OMG Standard for process modeling. DMN complements BPMN, providing a separation of concerns between the decision and the process. The example here describes a BPMN process and DMN DRD (Decision Requirements Diagram) for onboarding a bank customer. Several decisions are modeled and these decisions will direct the processes response. === New bank account process === In the BPMN process model shown in the figure, a customer makes a request to open a new bank account. The account application provides the account representative with all the information needed to create an account and provide the requested services. This includes the name, address and various forms of identification. In the next steps of the work flow, the know your customer (KYC) services are called. In the KYC services, the name and address are validated; followed by a check against the international criminal database (Interpol) and the database of persons that are 'politically exposed persons (PEP)'. The PEP is a person who is either entrusted with a prominent political position or a close relative thereof. Deposits from persons on the PEP list are potentially corrupt. This is shown as two services on the process model. Anti-money-laundering (AML) regulations require these checks before the customer account is certified. The results of these services plus the forms of identification are sent to the Certify New Account decision. This is shown as a 'rule' activity, verify account, on the process diagram. If the new customer passes certification, then the account is classified into onboarding for business retail, retail, wealth management and high-value business. Otherwise the customer application is declined. The Classify New Customer Decision classifies the customer. If the verify-account process returns a result of 'Manual' then the PEP or the Interpol check returned a close match. The account representative must visually inspect the name and the application to determine if the match is valid and accept or decline the application. === Certify new account decision === An account is certified for opening if the individual's' address is verified, and if valid identification is provided, and if the applicant is not on a list of criminals or politically exposed persons. These are shown as sub-decisions below the 'certify new account' decision. The account verification services provides a 100% match of the applicants address. For identification to be valid, the customer must provide a driver's license, passport or government issued ID. The checks against PEP and Interpol are 'fuzzy' matches and return matching score values. Scores above 85 are considered a 'match' and scores between 65 and 85 would require a 'manual' screening process. People who match either of these lists are rejected by the account application process. If there is a partial match with a score between 65 and 85, against the Interpol or PEP list then the certification is set to manual and an account representative performs a manual verification of the applicant's data. These rules are reflected in the figure below, which presents the decision table for whether to pass the provided name for the lists checks. === Client category === The client's on-boarding process is driven by what category they fall in. The category is decided by the: Type of client, business or private The size of the funds on deposit And the estimated net worth This decision is shown below: There are 6 business rules that determine the client's category and these are shown in the decision table here: === Summary example === In this example, the outcome of the 'Verify Account' decision directed the responses of the new account process. The same is true for the 'Classify Customer' decision. By adding or changing the business rules in the tables, one can easily change the criteria for these decisions and control the process differently. Modeling is a critical aspect of improving an existing process or business challenge. Modeling is generally done by a team of business analysts, IT personnel, and modeling experts. The expressive modeling capabilities of BPMN allows business analyst to understand the functions of the activities of the process. Now with the addition of DMN, business analysts can construct an understandable model of complex decisions. Combining BPMN and DMN yields a very powerful combination of models that work synergistically to simplify processes. == Relationship to decision mining and process mining == Automated discovery techniques that infer decision models from process execution data have been proposed as well. Here, a DMN decision model is derived from a data-enriched event log, along with the process that uses the decisions. In doing so, decision mining complements process mining with traditional data mining approaches. == cDMN extension == Constraint Decision Model and Notation (cDMN) is a formal notation for expressing knowledge in a tabular, intuitive format. It extends DMN with constraint reasoning and related concepts while aiming to retain the us

    Read more →
  • Leela Zero

    Leela Zero

    Leela Zero is a free and open-source computer Go program released on 25 October 2017. It is developed by Belgian programmer Gian-Carlo Pascutto, the author of chess engine Sjeng and Go engine Leela. Leela Zero's algorithm is based on DeepMind's 2017 paper about AlphaGo Zero. Unlike the original Leela, which has a lot of human knowledge and heuristics programmed into it, the program code in Leela Zero only knows the basic rules and nothing more. The knowledge that makes Leela Zero a strong player is contained in a neural network, which is trained based on the results of previous games that the program played. Leela Zero is trained by a distributed effort, which is coordinated at the Leela Zero website. Members of the community provide computing resources by running the client, which generates self-play games and submits them to the server. The self-play games are used to train newer networks. Generally, over 500 clients have connected to the server to contribute resources. The community has provided high quality code contributions as well. == Version history == Leela Zero finished third at the BerryGenomics Cup World AI Go Tournament in Fuzhou, Fujian, China on 28 April 2018. The New Yorker at the end of 2018 characterized Leela and Leela Zero as "the world’s most successful open-source Go engines". In early 2018, another team branched Leela Chess Zero from the same code base, also to verify the methods in the AlphaZero paper as applied to the game of chess. AlphaZero's use of Google TPUs was replaced by a crowd-sourcing infrastructure and the ability to use graphics card GPUs via the OpenCL library. Even so, it is expected to take a year of crowd-sourced training to make up for the dozen hours that AlphaZero was allowed to train for its chess match in the paper. The distributed training server was shut down on 2021-02-15, marking the end of Leela Zero project. The page now directs visitors to KataGo and SAI. The model sizes increased steadily over time. The first released model has hash name d645af97, size 1x8 (1 layer, 8 channels), and released at 2017-11-10 13:04. The last released model has hash name 0e9ea880, size 40x256, and was released at 2021-02-15 09:04. == Technology == Leela Zero is an (almost) exact replication of AlphaGo Zero in both training process and architecture. The training process is Monte-Carlo Tree Search with self-play, exactly the same as AlphaGo Zero. The architecture is the same as AlphaGo Zero (with one difference). Consider the last released model, 0e9ea880. It has 47 million parameters, and the following architecture: The stem of the network takes as input a 18x19x19 tensor representation of the Go board. 8 channels are the positions of the current player's stones from the last eight time steps. (1 if there is a stone, 0 otherwise. If the time step go before the beginning of the game, then 0 in all positions.) 8 channels are the positions of the other player's stones from the last eight time steps. 1 channel is all 1 if black is to move, and 0 otherwise. 1 channel is all 1 if white is to move, and 0 otherwise. (This channel is not present in the original AlphaGo Zero) The body is a ResNet with 40 residual blocks and 256 channels. There are two heads, a policy head and a value head. Policy head outputs a logit array of size 19 × 19 + 1 {\displaystyle 19\times 19+1} , representing the logit of making a move in one of the points, plus the logit of passing. Value head outputs a number in the range ( − 1 , + 1 ) {\displaystyle (-1,+1)} , representing the expected score for the current player. -1 represents current player losing, and +1 winning.

    Read more →
  • MIT Computer Science and Artificial Intelligence Laboratory

    MIT Computer Science and Artificial Intelligence Laboratory

    Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Laboratory (AI Lab). Housed within the Ray and Maria Stata Center, CSAIL is the largest on-campus laboratory as measured by research scope and membership. It is part of the Schwarzman College of Computing but is also overseen by the MIT Vice President of Research. == Research activities == CSAIL's research activities are organized around a number of semi-autonomous research groups, each of which is headed by one or more professors or research scientists. These groups are divided up into seven general areas of research: Artificial intelligence Computational biology Graphics and vision Language and learning Theory of computation Robotics Systems (includes computer architecture, databases, distributed systems, networks and networked systems, operating systems, programming methodology, and software engineering, among others) == History == Computing Research at MIT began with Vannevar Bush's research into a differential analyzer and Claude Shannon's electronic Boolean algebra in the 1930s, the wartime MIT Radiation Laboratory, the post-war Project Whirlwind and the Research Laboratory of Electronics (RLE), and MIT Lincoln Laboratory's SAGE in the early 1950s. At MIT, research in the field of artificial intelligence began in the late 1950s. === Project MAC === On July 1, 1963, Project MAC (the Project on Mathematics and Computation, later backronymed to Multiple Access Computer, Machine Aided Cognitions, or Man and Computer) was launched with a $2 million grant from the Defense Advanced Research Projects Agency (DARPA). Project MAC's original director was Robert Fano of MIT's Research Laboratory of Electronics (RLE). Fano decided to call MAC a "project" rather than a "laboratory" for reasons of internal MIT politics – if MAC had been called a laboratory, then it would have been more difficult to raid other MIT departments for research staff. The program manager responsible for the DARPA grant was J. C. R. Licklider, who had previously been at MIT conducting research in RLE, and would later succeed Fano as director of Project MAC. Project MAC would become famous for groundbreaking research in operating systems, artificial intelligence, and the theory of computation. Its contemporaries included Project Genie at Berkeley, the Stanford Artificial Intelligence Laboratory, and (somewhat later) University of Southern California's (USC's) Information Sciences Institute. An "AI Group" including Marvin Minsky (the director), John McCarthy (inventor of Lisp), and a talented community of computer programmers were incorporated into Project MAC. They were interested principally in the problems of vision, mechanical motion and manipulation, and language, which they view as the keys to more intelligent machines. In the 1960s and 1970s the AI Group developed a time-sharing operating system called Incompatible Timesharing System (ITS) which ran on PDP-6 and later PDP-10 computers. The early Project MAC community included Fano, Minsky, Licklider, Fernando J. Corbató, and a community of computer programmers and enthusiasts among others who drew their inspiration from former colleague John McCarthy. These founders envisioned the creation of a computer utility whose computational power would be as reliable as an electric utility. To this end, Corbató brought the first computer time-sharing system, Compatible Time-Sharing System (CTSS), with him from the MIT Computation Center, using the DARPA funding to purchase an IBM 7094 for research use. One of the early focuses of Project MAC would be the development of a successor to CTSS, Multics, which was to be the first high availability computer system, developed as a part of an industry consortium including General Electric and Bell Laboratories. In 1966, Scientific American featured Project MAC in the September thematic issue devoted to computer science, that was later published in book form. At the time, the system was described as having approximately 100 TTY terminals, mostly on campus but with a few in private homes. Only 30 users could be logged in at the same time. The project enlisted students in various classes to use the terminals simultaneously in problem solving, simulations, and multi-terminal communications as tests for the multi-access computing software being developed. === AI Lab and LCS === In the late 1960s, Minsky's artificial intelligence group was seeking more space, and was unable to get satisfaction from project director Licklider. Minsky found that although Project MAC as a single entity could not get the additional space he wanted, he could split off to form his own laboratory and then be entitled to more office space. As a result, the MIT AI Lab was formed in 1970, and many of Minsky's AI colleagues left Project MAC to join him in the new laboratory, while most of the remaining members went on to form the Laboratory for Computer Science. Talented programmers such as Richard Stallman, who used TECO to develop EMACS, flourished in the AI Lab during this time. Those researchers who did not join the smaller AI Lab formed the Laboratory for Computer Science and continued their research into operating systems, programming languages, distributed systems, and the theory of computation. Two professors, Hal Abelson and Gerald Jay Sussman, chose to remain neutral—their group was referred to variously as Switzerland and Project MAC for the next 30 years. Among much else, the AI Lab led to the invention of Lisp machines and their attempted commercialization by two companies in the 1980s: Symbolics and Lisp Machines Inc. === CSAIL === On the fortieth anniversary of Project MAC's establishment, July 1, 2003, LCS was merged with the AI Lab to form the MIT Computer Science and Artificial Intelligence Laboratory, or CSAIL. This merger created the largest laboratory (over 600 personnel) on the MIT campus. In 2018, CSAIL launched a five-year collaboration program with IFlytek, a company sanctioned the following year for allegedly using its technology for surveillance and human rights abuses in Xinjiang. In October 2019, MIT announced that it would review its partnerships with sanctioned firms such as iFlyTek and SenseTime. In April 2020, the agreement with iFlyTek was terminated. CSAIL moved from the School of Engineering to the newly formed Schwarzman College of Computing by February 2020. == Offices == From 1963 to 2004, Project MAC, LCS, the AI Lab, and CSAIL had their offices at 545 Technology Square, taking over more and more floors of the building over the years. In 2004, CSAIL moved to the new Ray and Maria Stata Center, which was built specifically to house it and other departments. == Outreach activities == The IMARA (from Swahili word for "power") group sponsors a variety of outreach programs that bridge the global digital divide. Its aim is to find and implement long-term, sustainable solutions which will increase the availability of educational technology and resources to domestic and international communities. These projects are run under the aegis of CSAIL and staffed by MIT volunteers who give training, install and donate computer setups in greater Boston, Massachusetts, Kenya, Native American Indian tribal reservations in the American Southwest such as the Navajo Nation, the Middle East, and Fiji Islands. The CommuniTech project strives to empower under-served communities through sustainable technology and education and does this through the MIT Used Computer Factory (UCF), providing refurbished computers to under-served families, and through the Families Accessing Computer Technology (FACT) classes, it trains those families to become familiar and comfortable with computer technology. == Notable researchers == (Including members and alumni of CSAIL's predecessor laboratories) MacArthur Fellows Tim Berners-Lee, Erik Demaine, Dina Katabi, Daniela L. Rus, Regina Barzilay, Peter Shor, Richard Stallman, and Joshua Tenenbaum Turing Award recipients Leonard M. Adleman, Fernando J. Corbató, Shafi Goldwasser, Butler W. Lampson, John McCarthy, Silvio Micali, Marvin Minsky, Ronald L. Rivest, Adi Shamir, Barbara Liskov, and Michael Stonebraker IJCAI Computers and Thought Award recipients Terry Winograd, Patrick Winston, David Marr, Gerald Jay Sussman, Rodney Brooks Rolf Nevanlinna Prize recipients Madhu Sudan, Peter Shor, Constantinos Daskalakis Gödel Prize recipients Shafi Goldwasser (two-time recipient), Silvio Micali, Maurice Herlihy, Charles Rackoff, Johan Håstad, Peter Shor, and Madhu Sudan Grace Murray Hopper Award recipients Robert Metcalfe, Shafi Goldwasser, Guy L. Steele, Jr., Richard Stallman, and W. Daniel Hillis Textbook authors Harold Abelson and Gerald Jay Sussman, Richard Stallman, Thomas H. Cormen, Charles E. Leiserson, Patrick Winston, Ronald L.

    Read more →
  • Language Computer Corporation

    Language Computer Corporation

    Language Computer Corporation (LCC) is a natural language processing research company based in Richardson, Texas. The company develops a variety of natural language processing products, including software for question answering, information extraction, and automatic summarization. Since its founding in 1995, the low-profile company has landed significant United States Government contracts, with $8,353,476 in contracts in 2006-2008. While the company has focused primarily on the government software market, LCC has also used its technology to spin off three start-up companies. The first spin-off, known as Lymba Corporation, markets the PowerAnswer question answering product originally developed at LCC. In 2010, LCC's CEO, Andrew Hickl, co-founded two start-ups which made use of the company's technology. These included Swingly, an automatic question answering start-up, and Extractiv, an information extraction service that was founded in partnership with Houston, Texas-based 80legs.

    Read more →
  • AGROVOC

    AGROVOC

    AGROVOC is a multilingual controlled vocabulary covering areas of interest of the Food and Agriculture Organization of the United Nations (FAO), aiming to promote the visibility of research produced among FAO members. By March 2024, AGROVOC consisted of over 42 000 concepts and up to 1 000 000 terms in more than 42 different languages. It is a collaborative effort, the outcome of consensus among a community of experts coordinated by FAO. == History == FAO first published AGROVOC at the beginning of the 1980s in English, Spanish and French to serve as a controlled vocabulary to index publications in agricultural science and technology, especially for the International System for Agricultural Science and Technology (AGRIS). In the 1990s, AGROVOC shifted from paper printing to a digital format opting for data storage handled by a relational database. In 2004, preliminary experiments with expressing AGROVOC into the Web Ontology Language (OWL) took place. At the same time a web based editing tool was developed, then called WorkBench, nowadays VocBench. In 2009 AGROVOC became an SKOS resource. == Usage == Today, AGROVOC is available in different languages. It is employed for tagging resources, allowing searches in a specific language while providing results in many others, enhancing their visibility worldwide. Additionally, it serves for organizing knowledge to facilitate subsequent data retrieval, tagging website content for search engine discovery, standardizing agricultural information data and acting as a reference for translations. Moreover, it finds applications in fields such as data mining, big data, or artificial intelligence. Updated AGROVOC content is released once a month and is available for public use. == Maintenance == FAO coordinates the editorial activities related to the maintenance of AGROVOC. Content curation is carried out by a community of editors and institutions responsible for each of the language versions. VocBench, is the tool used to edit and maintain AGROVOC in a distributed way. FAO also facilitates the technical maintenance of AGROVOC. == Copyright and license == Copyright for AGROVOC content in FAO languages (English, French, Spanish, Arabic, Russian and Chinese) is held by FAO, while content in other languages stays with the institutions that authored it. AGROVOC thesaurus content in English, Russian, French, Spanish, Arabic and Chinese is licensed under the international Creative Commons Attribution License (CC-BY-4.0).

    Read more →
  • Jensen Huang

    Jensen Huang

    Jen-Hsun "Jensen" Huang (Chinese: 黃仁勳; Wade–Giles: Huáng Jén-hsūn; Tâi-lô: N̂g Jîn-hun; born February 17, 1963) is a Taiwanese and American business executive and electrical engineer who is the founder, president, and CEO of Nvidia, the world's most valuable company. As of 2026, Forbes estimates his net worth at over US$200 billion, making him the seventh-wealthiest individual in the world. The son of Taiwanese immigrants, Huang spent his childhood in Taiwan and Thailand before moving to the United States, where he was a student in Kentucky and Oregon. After earning a master's degree from Stanford University, Huang launched Nvidia in 1993 from a Denny's restaurant in San Jose, California, at age 30 and has remained its president and CEO ever since. He led the company out of near-bankruptcy during the 1990s and oversaw its expansion into GPU production, high-performance computing, and artificial intelligence (AI). Under Huang, Nvidia experienced rapid growth during the AI boom, becoming the first company to reach a market capitalization of over $5 trillion in October 2025. In 2021 and 2024, Time magazine included Huang in their list of the most influential people. In 2025, he was named as one of the "Architects of AI" for Time's Person of the Year. == Early life and education == Huang was born in Taipei, Taiwan, on February 17, 1963, and moved to the southern city of Tainan as a child. He is the younger of two sons of Huang Hsing-tai, a chemical engineer at an oil refinery, and Lo Tsai-hsiu, a schoolteacher. They were a middle-class Taiwanese family that relocated often, and were native speakers of Taiwanese Hokkien. Each day, Jensen's mother randomly selected 10 words from the dictionary to teach her sons English. When he was five years old, Huang's family moved to Thailand to support his father's refinery career and remained there for approximately four years. He attended Ruamrudee International School while in Bangkok. In the late 1960s, Hsing-tai traveled from Taiwan to New York City to train under an air conditioning company and, after returning home, resolved to send his sons to the United States. At age nine, Jensen, despite not yet being able to speak English fluently, was sent by his parents to live in the United States. He and his older brother moved in 1973 to live with an uncle in Tacoma, Washington, escaping widespread social unrest in Thailand. Both Huang's aunt and uncle were recent immigrants to Washington state; they accidentally enrolled him and his brother in the Oneida Baptist Institute, a religious reform academy in Kentucky for troubled youth, mistakenly believing it to be a prestigious boarding school. In order to afford the academy's tuition, Jensen's parents sold nearly all their possessions. When he was 10 years old, Huang lived with his older brother in the Oneida boys' dormitory. Each student was expected to work every day, and his brother was assigned to perform manual labor on a nearby tobacco farm. Because he was too young to attend classes at the reform academy, Huang was educated at a separate public school—the Oneida Elementary school in Oneida, Kentucky—arriving as "an undersized Asian immigrant with long hair and heavily accented English" and was frequently bullied and beaten. In Oneida, Huang cleaned toilets every day, learned to play table-tennis, joined the swimming team, and appeared in Sports Illustrated at age 14. He taught his illiterate roommate, a "17-year-old covered in tattoos and knife scars," how to read in exchange for being taught how to bench press. In 2002, Huang said he remembered his life in Kentucky "more vividly than just about any other". Two years after Huang arrived in Oneida, his parents moved to the United States and settled in Beaverton, Oregon, after which the brothers withdrew from school in Kentucky to live back with them. As a teenager, Huang attended Aloha High School in Aloha, Oregon, where he excelled academically. He skipped two grades, graduated at age 16, and became a nationally ranked table-tennis player in addition to being a member of its mathematics, computer, and science clubs. In 1977, the school purchased an Apple II computer. Huang used the machine to play Super Star Trek, a text-based game, and to program in BASIC, creating his own version of Snake. Beginning at age 15, Huang got his first job working the graveyard shift at a local Denny's restaurant as a dishwasher, busboy, and waiter from 1978 to 1983. After high school, he chose to enroll at Oregon State University due to its low in-state tuition. He studied electrical engineering and graduated in 1984 with a bachelor's degree with highest honors. Huang later recalled, "I was the youngest kid in school, in class" and the only student who "looked like a child". Years later, while working as a microchip designer in Silicon Valley, he concurrently pursued graduate night classes at Stanford University, where he earned a master's degree in electrical engineering in 1992. == AMD and LSI Logic == After graduating from college, Huang was a microchip designer in Silicon Valley. He was recruited for positions at Texas Instruments, Advanced Micro Devices (AMD), and LSI Logic, ultimately choosing the California-based AMD due to already being familiar with the company. Huang designed AMD microprocessors while simultaneously attending Stanford and raising his two children. However, when he heard of new chip design processes at LSI Logic, Huang left AMD to assume a role as a technical officer at the LSI Corporation, working under a startup company, Sun Microsystems, where he met engineers Chris Malachowsky and Curtis Priem. LSI was in contract with Sun Microsystems and had introduced Huang to Malachowsky and Priem, who were working on a new graphics accelerator card. While the three produced the card's manufacturing process, the relationship between Malachowsky and Priem became strained as the two disputed the chip's design, leading to infighting; according to Malachowsky, they "broke every tool that LSI Logic had in their standard portfolio". In 1989, Huang, Malachowsky, and Priem finalized the accelerator, which they called the "GX graphics engine". GX was a widespread financial success; the sales of the graphics engine contributed to Sun Microsystem's revenue increasing from $262 million in 1987 to $656 million in 1990, and Huang was promoted to be the director of LSI's CoreWare, a division that manufactured chips for hardware vendors. == Nvidia == === Founding (1993) === When business began to slow for Sun Microsystems after 1990, Huang, along with Priem and Malachowsky, each resigned their jobs to pursue a venture together in making graphics chips for PC games. They initially named their new company "NVision" until Huang suggested that the company be named "Nvidia" based on the Latin word invidia, as Priem wanted competitors to turn "green with envy". They eventually dropped the "i" to honor the NV1 chip that they were then developing. The three met frequently in 1992 at a Denny's roadside diner in East San Jose to formulate a business plan. Huang chose for them to meet at Denny's due to his prior work experience at the restaurant chain and because it was "quieter than home and had cheap coffee". The three founded the company during one meeting at a breakfast booth at the diner. To formally incorporate the company, Huang found a lawyer, James Gaither of Cooley Godward, who demanded the $200 in cash in Huang's pockets to capitalize the company. After that meeting, Huang went back to Priem and Malachowsky to ask each of them for $200 for their respective shares of the company, which meant that Nvidia's initial capital was $600. On April 5, 1993, Huang personally signed Nvidia's original articles of incorporation into effect. Although he left LSI, Huang remained in good standing with the company and was able to secure funding for Nvidia from LSI's CEO, Wilfred Corrigan, who introduced Huang to venture capitalist Don Valentine. An account cited how Huang's presentation pitch went badly. Valentine, the leader of Sequoia Capital, chose to invest in Nvidia through Corrigan's support, as did Sutter Hill Ventures. The funding enabled Nvidia to begin development efforts toward its first chip and to begin paying wages for its employees. By the first day of operation, Huang was made Nvidia's president and CEO. Even though Huang, at age 30, was younger than Priem and Malachowsky, both Priem and Malachowsky believed that he was prepared to be CEO. According to Priem, "we basically deferred to Jensen on day one" and told Huang, "you're in charge of running the company—all the stuff Chris and I don't know how to do". === President and CEO (1993–present) === As of 2024, Huang has been Nvidia's chief executive for over three decades, a tenure described by The Wall Street Journal as "almost unheard of in fast-moving Silicon Valley". He owns 3.6% of Nvidia's stock, which went public in 1999. He earned US$24.6 million as CEO i

    Read more →
  • Colossus (supercomputer)

    Colossus (supercomputer)

    Colossus is a supercomputer developed by xAI. Construction began in 2024 in Memphis, Tennessee; the system became operational in July 2024. It is currently the world's largest AI supercomputer. Colossus's primary purpose is to train the company's chatbot, Grok. In addition, Colossus provides computing support to the social-media platform X and to other projects of Elon Musk, such as SpaceX. In 2025, it expanded to neighboring Southaven, Mississippi across the Tennessee–Mississippi border. As of May 6, 2026, Anthropic has agreed to rent all compute capacity at the Colossus 1 data center. == Background == Colossus was launched in September 2024 at a former Electrolux site in South Memphis to train the AI language model Grok. Within 19 days of the project's conception, xAI was ready to begin construction. The site was chosen because the abandoned Electrolux building could be repurposed to expedite construction and its proximity to a nearby wastewater treatment facility provided a water source. As of February 2025, xAI plans to build an $80 million facility to process additional wastewater for use at the supercomputer. === xAI === Musk incorporated xAI in March 2023 with the stated purpose of understanding the "nature of the universe". The team includes former members of OpenAI, DeepMind, Microsoft, and Tesla. Musk was one of the founding members of the company OpenAI, investing up to US$45 million in 2015. He left OpenAI in 2018, reportedly to avoid conflicts of interest with Tesla. It has also been reported that he had made a bid for leadership at OpenAI and left when his proposal was rejected. The exact reasons for his departure from the company are unclear. Both Dell Technologies and Supermicro partnered with xAI to build the supercomputer. It was originally powered by 100,000 Nvidia graphics processing units (GPUs) and was constructed in 122 days. 3 months after the first 100,000 GPUs were deployed, xAI announced that they had increased the system to 200,000 GPUs and that they intended to continue increasing the computer's processing power to 1 million GPUs. As of April 2025, xAI claimed Colossus was the largest AI training platform in the world. == Choice of location == xAI selected Memphis, in southwestern Tennessee, as the site for Colossus in part because an existing industrial facility allowed the project to proceed more quickly than constructing a new data center. Elon Musk was initially told that building a data center would take 18–24 months. The company instead searched for a vacant facility and selected the former Electrolux factory in Memphis. Electrolux opened the facility in 2012 and operated it for about eight years before closing it in 2020 after relocating operations to Springfield, Tennessee. The building covered 785,000 sq ft (72,900 m2) and had been purchased by Phoenix Investors in December 2023 for $35 million . Because the structure was already in place, work on the supercomputer could begin immediately rather than waiting for a new facility to be constructed. According to Forbes, xAI considered seven or eight other sites before selecting Memphis, and Musk finalized the decision to build in Memphis in about a week. The decision was finalized in March 2024, after which construction began. xAI publicly announced in June 2024 that Colossus would be built in Memphis. The building itself was not the only reason xAI selected Memphis. According to the Greater Memphis Chamber, the company chose the city because of its "reliable power grid, ability to create a water recycling facility, proximity to the Mississippi River and ample land". The city was also able to provide the large amounts of electricity and water needed to operate the supercomputer. At full capacity, the system was expected to require 150 megawatts of electricity and millions of gallons of water per day. The project also relied on partnerships with local and regional organizations including Memphis Light, Gas and Water (MLGW), Tennessee Valley Authority (TVA), the City of Memphis, and Shelby County. The city also provided financial incentives for the project. == Environmental impact == AI data centers consume large amounts of energy. At the site of Colossus in South Memphis, the grid connection was only 8 MW, so xAI applied to temporarily set up more than a dozen gas turbines (Voltagrid’s 2.5 MW units and Solar Turbines’ 16 MW SMT-130s) which would steadily burn methane gas from a 16-inch natural gas main. Aerial imagery in April 2025 showed 35 gas turbines had been set up at a combined 422 MW. These turbines have been estimated to generate about "72 megawatts, which is approximately 3% of the (TVA) power grid". The higher number of gas turbines and the subsequent emissions requires xAI to have a major source permit. In Memphis, xAI was able to avoid some environmental rules in the construction of Colossus, such as operating without permits for the on-site methane gas turbines because they are "portable". The Shelby County Health Department told NPR that "it only regulates gas-burning generators if they're in the same location for more than 364 days". However, in a January 2026 ruling, the EPA revised its New Source Performance Standard and announced that large methane gas turbines require permits even for temporary operations. In November 2024, the grid connection was upgraded to 150 MW, and some turbines were removed. Along with high electricity needs, the expected water demand is over five million gallons of water per day. While xAI has stated they plan to work with MLGW on a wastewater treatment facility and the installation of 50 megawatts of large battery storage facilities, there are currently no concrete plans in place aside from a one-page factsheet shared by MLGW. == Community response == The plan to build Colossus in Memphis was unknown to residents, City Council members, and environmental agencies. Many did not find out about the project until the day before, or the day of, as they watched the announcement on the local news. Keshaun Pearson, president of Memphis Community Against Pollution, stated that there is a historical lack of transparency and communication surrounding environmental issues in Memphis. Some community members in Memphis have expressed concern about the potential for additional air and water pollution caused by the supercomputer. In a letter to the Shelby County Health Department, the Southern Environmental Law Center stated the emissions from the turbines make the facility "...likely the largest industrial emitter of NOx in Memphis..." This is due to data supplied by the manufacturer showing that "...xAI emits between 1,200 and 2,000 tons of smog-forming nitrogen oxides (NOx)..." At a public Shelby County Commissioner's hearing on April 9, 2025, residents living near the site of Colossus voiced complaints about air quality, noting that they have chronic respiratory issues related to living in a polluted section of Memphis. One woman said she smells "everything but the right thing and the right thing is the clean air." Other residents voiced frustration that Brent Mayo, the senior xAI official responsible for building out xAI's infrastructure, did not attend the meeting to discuss community concerns. Keshaun Pearson also stated that "We're getting more and more days a year where it is unhealthy for us to go outside." People living near the site of Colossus have said they were not offered the opportunity for a public review of the plans, nor were they provided with information on how their community could potentially benefit. The community is also concerned about the strain on the power grid. Memphis's peak demand is around 3 GW. In November 2024, TVA approved xAI's request for access to more than 100 megawatts of power to Colossus which is supplied by MLGW. In December 2022, MLGW imposed (then rescinded) rolling blackouts during several days of extreme cold, straining the power grid. In a letter to the TVA, the SELC "urged the agency to 'prioritize Memphis families' access to reliable power over the 'secondary purpose' of serving xAI". == Current progress == In early December 2024, Ted Townsend detailed how the power of Colossus doubled in its processing capability. When it first went online in September 2024, it was using "100,000 Nvidia H100 processing chips". This initial launch demonstrated Colossus to be the largest supercomputer globally. The maximum power consumption increased from 150 to 250 MW. As of June 2025, the supercomputer consists of 150,000 H100 GPUs, 50,000 H200 GPUs, and 30,000 GB200 GPUs. Another 110,000 GB200 GPUs are to be brought online at a second data center, also in the Memphis area. The expansion of this supercomputer has already been discussed and will be the second phase of the project. xAI also plans to increase Colossus to 1 million GPUs. Because the supercomputer currently utilizes gas turbines for power, alongside 168 Tesla Megapack battery storage units. xAI is also looking to add more

    Read more →
  • PerfKitBenchmarker

    PerfKitBenchmarker

    PerfKit Benchmarker is an open source benchmarking tool used to measure and compare cloud offerings. PerfKit Benchmarker is licensed under the Apache 2 license terms. PerfKit Benchmarker is a community effort involving over 500 participants including researchers, academic institutions and companies together with the originator, Google. == General == PerfKit Benchmarker (PKB) is a community effort to deliver a repeatable, consistent, and open way of measuring Cloud Performance. It supports a growing list of cloud providers including: Alibaba Cloud, Amazon Web Services, CloudStack, DigitalOcean, Google Cloud Platform, Kubernetes, Microsoft Azure, OpenStack, Rackspace, IBM Bluemix (Softlayer). In addition to Cloud Providers to supports container orchestration including Kubernetes [1] and Mesos [2] and local "static" workstations and clusters of computers [3]. The goal is to create an open source living benchmark [framework] that represents how Cloud developers are building applications, evaluating Cloud alternatives, learning how to architect applications for each cloud. Living because it will change and morph quickly as developers change. PerfKit Benchmarker measures the end to end time to provision resources in the cloud, in addition to reporting on the most standard metrics of peak performance, e.g.: latency, throughput, time-to-complete, IOPS. PerfKit Benchmarker reduces the complexity in running benchmarks on supported cloud providers by unified and simple commands. It's designed to operate via vendor provided command line tools. PerfKit Benchmarker contains a canonical set of public benchmarks. All benchmarks are running with default/initial state and configuration (Not tuned to in favor of any providers). This provides a way to benchmark across cloud platforms, while getting a transparent view of application throughput, latency, variance, and overhead. == History == PerfKit Benchmarker (PKB) was started by Anthony F. Voellm, Alain Hamel, and Eric Hankland at Google in 2014. Once an initial "alpha" was in place Anthony F. Voellm and Ivan Santa Maria Filho built a community including ARM, Broadcom, Canonical, CenturyLink, Cisco, CloudHarmony, CloudSpectator, EcoCloud@EPFL, Intel, Mellanox, Microsoft, Qualcomm Technologies, Inc., Rackspace, Red Hat, Tradeworx Inc., and Thesys Technologies LLC. This community worked together behind the scenes in a private GitHub project to create an open way to measure cloud performance. This community released the first public "beta" was released on February 11, 2015, and announced in a blog post at which point the GitHub project was open to everyone. After almost a year and with large adaption (600+ participants on GitHub) the V1.0.0 was released along with a detailed architectural design on December 10, 2015. == Benchmarks == A list of available benchmarks from PerfKitBenchmarker: (The latest set of benchmarks can be found at GitHub readme file.) == Industry participants == Since Google open sourced the PerfKitBenchmarker, it became a community effort from over 30 leading researchers, academic schools and industry companies. Those organizations include: ARM, Broadcom, Canonical, CenturyLink, Cisco, CloudHarmony, Cloud Spectator, EcoCloud@EPFL, Intel, Mellanox, Microsoft, Qualcomm Technologies, Rackspace, Red Hat, and Thesys Technologies. In addition, Stanford and MIT are leading quarterly discussions on default benchmarks and settings proposed by the community. EcoCloud@EPFL is integrating CloudSuite into PerfKit Benchmarker. == Example runs == On Google Cloud Platform On AWS On Azure On Rackspace On a local machine

    Read more →
  • Seeing AI

    Seeing AI

    Seeing AI is an artificial intelligence application developed by Microsoft for iOS. Seeing AI uses the device camera to identify people and objects, and then the app audibly describes those objects for visually impaired people. == Capabilities == Seeing AI is primarily used to describe short text, documents, products, people, currency scenery, colors, handwriting and light. The app can scan a barcode to describe a product and uses sounds to assist the user in focusing on the barcode. When the app describes people, it attempts to estimate the person's age, gender, and emotional status. Additionally, in a test run by German journalists in December 2019, Seeing AI apparently used some sort of facial recognition system to identify people on photographs by name. Some functions are performed on the device, however more complex functions such as describing a scene or recognizing handwriting require an Internet connection. In December 2017, Seeing AI introduced the ability for currency recognition for US and Canadian dollar, British pounds and Euros. In December 2019, Seeing AI added support for five more languages, Dutch, French, German, Japanese, Spanish. Seeing AI is available in 70 countries such as Brazil, Argentina, Australia, Canada, Egypt, Albania, Bhutan, etc. Supported on iPhone 5C, 5S and later best performance with iPhone 6S, SE and later models

    Read more →
  • Tree (abstract data type)

    Tree (abstract data type)

    In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected nodes. Each node in the tree can be connected to many children (depending on the type of tree), but must be connected to exactly one parent, except for the root node, which has no parent (i.e., the root node as the top-most node in the tree hierarchy). These constraints mean there are no cycles or "loops" (no node can be its own ancestor), and also that each child can be treated like the root node of its own subtree, making recursion a useful technique for tree traversal. In contrast to linear data structures, many trees cannot be represented by relationships between neighboring nodes (parent and children nodes of a node under consideration, if they exist) in a single straight line (called edge or link between two adjacent nodes). Binary trees are a commonly used type, which constrain the number of children for each parent to at most two. When the order of the children is specified, this data structure corresponds to an ordered tree in graph theory. A value or pointer to other data may be associated with every node in the tree, or sometimes only with the leaf nodes, which have no children nodes. The abstract data type (ADT) can be represented in a number of ways, including a list of parents with pointers to children, a list of children with pointers to parents, or a list of nodes and a separate list of parent-child relations (a specific type of adjacency list). Representations might also be more complicated, for example using indexes or ancestor lists for performance. Trees as used in computing are similar to but can be different from mathematical constructs of trees in graph theory, trees in set theory, and trees in descriptive set theory. == Terminology == A node is a structure which may contain data and connections to other nodes, sometimes called edges or links. Each node in a tree has zero or more child nodes, which are below it in the tree (by convention, trees are drawn with descendants going downwards). A node that has a child is called the child's parent node (or superior). All nodes have exactly one parent, except the topmost root node, which has none. A node might have many ancestor nodes, such as the parent's parent. Child nodes with the same parent are sibling nodes. Typically siblings have an order, with the first one conventionally drawn on the left. Some definitions allow a tree to have no nodes at all, in which case it is called empty. An internal node (also known as an inner node, inode for short, or branch node) is any node of a tree that has child nodes. Similarly, an external node (also known as an outer node, leaf node, or terminal node) is any node that does not have child nodes. The height of a node is the length of the longest downward path to a leaf from that node. The height of the root is the height of the tree. The depth of a node is the length of the path to its root (i.e., its root path). Thus the root node has depth zero, leaf nodes have height zero, and a tree with only a single node (hence both a root and leaf) has depth and height zero. Conventionally, an empty tree (tree with no nodes, if such are allowed) has height −1. Each non-root node can be treated as the root node of its own subtree, which includes that node and all its descendants. Other terms used with trees: Neighbor Parent or child. Ancestor A node reachable by repeated proceeding from child to parent. Descendant A node reachable by repeated proceeding from parent to child. Also known as subchild. Degree For a given node, its number of children. A leaf, by definition, has degree zero. Degree of tree The degree of a tree is the maximum degree of a node in the tree. Distance The number of edges along the shortest path between two nodes. Level The level of a node is the number of edges along the unique path between it and the root node. This is the same as depth. Width The number of nodes in a level. Breadth The number of leaves. Complete tree A tree with every level filled, except the last. Forest A set of one or more disjoint trees. Ordered tree A rooted tree in which an ordering is specified for the children of each vertex. Size of a tree Number of nodes in the tree. == Common operations == Enumerating all the items Enumerating a section of a tree Searching for an item Adding a new item at a certain position on the tree Deleting an item Pruning: Removing a whole section of a tree Grafting: Adding a whole section to a tree Finding the root for any node Finding the lowest common ancestor of two nodes === Traversal and search methods === Stepping through the items of a tree, by means of the connections between parents and children, is called walking the tree, and the action is a walk of the tree. Often, an operation might be performed when a pointer arrives at a particular node. A walk in which each parent node is traversed before its children is called a pre-order walk; a walk in which the children are traversed before their respective parents are traversed is called a post-order walk; a walk in which a node's left subtree, then the node itself, and finally its right subtree are traversed is called an in-order traversal. (This last scenario, referring to exactly two subtrees, a left subtree and a right subtree, assumes specifically a binary tree.) A level-order walk effectively performs a breadth-first search over the entirety of a tree; nodes are traversed level by level, where the root node is visited first, followed by its direct child nodes and their siblings, followed by its grandchild nodes and their siblings, etc., until all nodes in the tree have been traversed. == Representations == There are many different ways to represent trees. In working memory, nodes are typically dynamically allocated records with pointers to their children, their parents, or both, as well as any associated data. If of a fixed size, the nodes might be stored in a list. Nodes and relationships between nodes might be stored in a separate special type of adjacency list. In relational databases, nodes are typically represented as table rows, with indexed row IDs facilitating pointers between parents and children. Nodes can also be stored as items in an array, with relationships between them determined by their positions in the array (as in a binary heap). A binary tree can be implemented as a list of lists: the head of a list (the value of the first term) is the left child (subtree), while the tail (the list of second and subsequent terms) is the right child (subtree). This can be modified to allow values as well, as in Lisp S-expressions, where the head (value of first term) is the value of the node, the head of the tail (value of second term) is the left child, and the tail of the tail (list of third and subsequent terms) is the right child. Ordered trees can be naturally encoded by finite sequences, for example with natural numbers. == Examples of trees and non-trees == == Type theory == As an abstract data type, the abstract tree type T with values of some type E is defined, using the abstract forest type F (list of trees), by the functions: value: T → E children: T → F nil: () → F node: E × F → T with the axioms: value(node(e, f)) = e children(node(e, f)) = f In terms of type theory, a tree is an inductive type defined by the constructors nil (empty forest) and node (tree with root node with given value and children). == Mathematical terminology == Viewed as a whole, a tree data structure is an ordered tree, generally with values attached to each node. Concretely, it is (if required to be non-empty): A rooted tree with the "away from root" direction (a more narrow term is an "arborescence"), meaning: A directed graph, whose underlying undirected graph is a tree (any two vertices are connected by exactly one simple path), with a distinguished root (one vertex is designated as the root), which determines the direction on the edges (arrows point away from the root; given an edge, the node that the edge points from is called the parent and the node that the edge points to is called the child), together with: an ordering on the child nodes of a given node, and a value (of some data type) at each node. Often trees have a fixed (more properly, bounded) branching factor (outdegree), particularly always having two child nodes (possibly empty, hence at most two non-empty child nodes), hence a "binary tree". Allowing empty trees makes some definitions simpler, some more complicated: a rooted tree must be non-empty, hence if empty trees are allowed the above definition instead becomes "an empty tree or a rooted tree such that ...". On the other hand, empty trees simplify defining fixed branching factor: with empty trees allowed, a binary tree is a tree such that every node has exactly two children, each of which is a tree (possibly empty). == Applications == Trees are commonly used to represent or manipulate hierarchical data in ap

    Read more →