Civil Rights
Movements, leaders, victories and the continuing fight for equality.
Explore the people, places, events, achievements, struggles and stories that shaped our journey.
Movements, leaders, victories and the continuing fight for equality.
Innovation, patents, science, technology and world-changing contributions.
Pioneers, champions, Negro Leagues, records, activism and excellence.
Meet the people whose lives, choices and achievements shaped the journey.
Black towns, communities, institutions and places where history happened.
Moments that changed communities, movements, institutions and the nation.
In 1968 Shirley Chisholm became the first Black woman elected to the United States Congress. In 1972 she launched a campaign for the Democratic presidential nomination, breaking another political barrier.
MORE →Reflects the personal views, recollections, and perspective of the author, Mike Davis.
This is a personal recollection on the Move fire on May 13, 1985
In computing, a group of parallel arrays (also known as structure of arrays or SoA) is a form of implicit data structure that uses multiple arrays to represent a singular array of records. It keeps a separate, homogeneous data array for each field of the record, each having the same number of elements. Then, objects located at the same index in each array are implicitly the fields of a single record. Pointers from one object to another are replaced by array indices. This contrasts with the normal approach of storing all fields of each record together in memory (also known as array of structures or AoS). For example, one might declare an array of 100 names, each a string, and 100 ages, each an integer, associating each name with the age that has the same index.[1]
An example in C using parallel arrays:
int ages[] = {0, 17, 2, 52, 25};
char *names[] = {"None", "Mike", "Billy", "Tom", "Stan"};
int parent[] = {0 /*None*/, 3 /*Tom*/, 1 /*Mike*/, 0 /*None*/, 3 /*Tom*/};
for (i = 1; i <= 4; i++) {
printf("Name: %s, Age: %d, Parent: %s \n",
names[i], ages[i], names[parent[i]]);
}
in Perl (using a hash of arrays to hold references to each array):
my %data = (
first_name => ['Joe', 'Bob', 'Frank', 'Hans' ],
last_name => ['Smith','Seger','Sinatra','Schultze'],
height_in_cm => [169, 158, 201, 199 ]);
for $i (0..$#{$data{first_name}}) {
printf "Name: %s %s\n", $data{first_name}[$i], $data{last_name}[$i];
printf "Height in CM: %i\n", $data{height_in_cm}[$i];
}
Or, in Python:
first_names = ["Joe", "Bob", "Frank", "Hans" ]
last_names = ["Smith","Seger","Sinatra","Schultze"]
heights_in_cm = [169, 158, 201, 199 ]
for i in range(len(first_names)):
print("Name: %s %s" % (first_names[i], last_names[i]))
print("Height in cm: %s" % heights_in_cm[i])
# Using zip:
for first_name, last_name, height_in_cm in zip(first_names, last_names, heights_in_cm):
print(f"Name: {first_name} {last_name}")
print(f"Height in cm: {height_in_cm}")
This article contains a pro and con list. (May 2021) |
Parallel arrays have a number of practical advantages over the normal approach:
Several of these advantages depend strongly on the particular programming language and implementation in use.
However, parallel arrays also have several strong disadvantages, which serves to explain why they are not generally preferred:
The bad locality of reference can be alleviated in some cases: if a structure can be divided into groups of fields that are generally accessed together, an array can be constructed for each group, and its elements are records containing only these subsets of the larger structure's fields. (see data-oriented design). This is a valuable way of speeding up access to very large structures with many members, while keeping the portions of the structure tied together. An alternative to tying them together using array indexes is to use references to tie the portions together, but this can be less efficient in time and space.
Another alternative is to use a single array, where each entry is a record structure. Many language provide a way to declare actual records, and arrays of them. In other languages it may be feasible to simulate this by declaring an array of n*m size, where m is the size of all the fields together, packing the fields into what is effectively a record, even though the particular language lacks direct support for records. Some compiler optimizations, particularly for vector processors, are able to perform this transformation automatically when arrays of structures are created in the program.[citation needed]
Source: Wikipedia. Article content is retrieved live through the MediaWiki API.
In computing, a group of parallel arrays (also known as structure of arrays or SoA) is a form of implicit data structure that uses multiple arrays to represent a singular array of records. It keeps a separate, homogeneous data array for each field of the record, each having the same number of elements. Then, objects located at the same index in each array are implicitly the fields of a single record. Pointers from one object to another are replaced by array indices. This contrasts with the normal approach of storing all fields of each record together in memory (also known as array of structures or AoS). For example, one might declare an array of 100 names, each a string, and 100 ages, each an integer, associating each name with the age that has the same index.
A massively parallel processor array, also known as a multi purpose processor array (MPPA) is a type of integrated circuit which has a massively parallel array of hundreds or thousands of CPUs and RAM memories. These processors pass work to one another through a reconfigurable interconnect of channels. By harnessing a large number of processors working in parallel, an MPPA chip can accomplish more demanding tasks than conventional chips. MPPAs are based on a software parallel programming model for developing high-performance embedded system applications.
The Susquehanna River ( SUSS-kwə-HAN-ə; Lenape: Siskëwahane) is a major river located in the Mid-Atlantic region of the United States, crossing three lower Northeast states (New York, Pennsylvania and Maryland). At 444 miles (715 km) long, it is the longest river on the East Coast of the United States. By watershed area, it is the 16th-largest river in the United States, and also the longest river in the early 21st-century continental United States without commercial boat traffic. The Susquehanna River forms from two main branches: the North Branch, which rises in Cooperstown, New York, and is regarded by federal mapmakers as the main branch or headwaters, and the West Branch, which rises in western Pennsylvania and joins the main branch near Northumberland in central Pennsylvania. The river drains 27,500 square miles (71,000 km2), including nearly half of the land area of Pennsylvania. The drainage basin includes portions of the Allegheny Plateau region of the Appalachian Mountains, cutting through a succession of water gaps in a broad zigzag course to flow across the rural heartland of southeastern Pennsylvania and northeastern Maryland in the lateral near-parallel array of mountain ridges. The river empties into the northern end of the Chesapeake Bay at Perryville and Havre de Grace, Maryland, providing half of the bay's freshwater inflow. The bay lies in the flooded valley, or ria, of the Susquehanna.
In computing, data-oriented design is a program optimization approach motivated by efficient usage of the CPU cache, often used in video game development. The approach is to focus on the data layout, separating and sorting fields according to when they are needed, and to think about transformations of data. Proponents include Mike Acton, Scott Meyers, and Jonathan Blow. The parallel array (or structure of arrays) is the main example of data-oriented design. It is contrasted with the array of structures typical of object-oriented designs. The definition of data-oriented design as a programming paradigm can be seen as contentious as many believe that it can be used side by side with another paradigm, but due to the emphasis on data layout, it is also incompatible with most other paradigms.
Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.
MORE →The Greenwood District.